Advertisement
Rentib

Julka

Mar 10th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.58 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4.   string s;
  5.   int n;
  6.   cin >> n >> s;
  7.   int wazne, P[n + 7], k;
  8.   P[0] = 0;
  9.   for(int i = 1;i < n;i++){
  10.     k = P[i - 1];
  11.     while(k > 0 && s[i] != s[k])
  12.       k = P[k-1];
  13.     if(s[i] == s[k])
  14.       k++;
  15.     P[i] = k;
  16.   }
  17.   wazne = P[n-1];
  18.   for(int i = 0;i < n - 1 - P[n-1];i++){
  19.     P[i] = P[i + P[n - 1]];
  20.   }
  21.   k = 0;
  22.   for(int i = 1;i < n - 2 * P[n-1];i++){
  23.     while(k > 0 && s[i] != s[k])
  24.       k = P[k-1];
  25.     if(s[i]==s[k])
  26.       k=k+1;
  27.     P[i]=k;
  28.   }
  29.   cout<< P[n - 2 * P[n - 1] - 1] + wazne;
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement