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