| 
 | 
вернуться в форумaccepted //#pragma GCC optimize("Ofast,no-stack-protector") //#pragma GCC target("avx") #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp>
  using namespace __gnu_pbds; using namespace std;
  #define re return #define pb push_back #define eb emplace_back #define all(x) (x).begin(), (x).end() #define fi first #define se second #define sqrt(x) sqrt(abs(x)) #define mp make_pair #define pi (3.14159265358979323846264338327950288419716939937510) #define fo(i, n) for(int i = 0; i < n; ++i) #define ro(i, n) for(int i = n - 1; i >= 0; --i) #define unique(v) v.resize(unique(all(v)) - v.begin())
  template <class T> T abs (T x) { re x > 0 ? x : -x; } template <class T> T sqr (T x) { re x * x; } template <class T> T gcd (T a, T b) { re a ? gcd (b % a, a) : b; } template <class T> int sgn (T x) { re x > 0 ? 1 : (x < 0 ? -1 : 0); }
  typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> ii; typedef vector<ii> vii; typedef vector<string> vs; typedef double D; typedef long double ld; typedef long long ll; typedef pair<ll, ll> pll; typedef vector<ll> vll; typedef unsigned long long ull; typedef tree <pair<int, char>, null_type, less<pair<int, char>>, rb_tree_tag, tree_order_statistics_node_update> _tree;   void Z_function (string &str, vi &z) {     int n = str.size();     z.resize(n, 0);     for (int i = 1, l = 0, r = 0; i < n; ++i) {         if (i <= r) {             z[i] = min(r - i + 1, z[i - l]);         }         while (i + z[i] < n && str[z[i]] == str[i + z[i]]) ++z[i];         if (i + z[i] - 1 > r) l = i, r = z[i] + i - 1;     } }   string str, s; vi z;   int main() {     int n;     cin >> n >> str >> s;     str += '$'; str += s; str += s;     Z_function(str, z);     fo(i, (int)z.size()) {         if (z[i] == n) {             cout << i - n - 1 << endl;             re 0;         }     }     cout << -1 << endl;     re 0; }  |  
  | 
|