Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int main(){
- string s;
- int n;
- cin >> n >> s;
- int wazne, P[n + 7], k;
- P[0] = 0;
- for(int i = 1;i < n;i++){
- k = P[i - 1];
- while(k > 0 && s[i] != s[k])
- k = P[k-1];
- if(s[i] == s[k])
- k++;
- P[i] = k;
- }
- wazne = P[n-1];
- for(int i = 0;i < n - 1 - P[n-1];i++){
- P[i] = P[i + P[n - 1]];
- }
- k = 0;
- for(int i = 1;i < n - 2 * P[n-1];i++){
- while(k > 0 && s[i] != s[k])
- k = P[k-1];
- if(s[i]==s[k])
- k=k+1;
- P[i]=k;
- }
- cout<< P[n - 2 * P[n - 1] - 1] + wazne;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement