Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <algorithm>
- using namespace std;
- string s, rs;
- int n;
- vector<int> p;
- void preffix_function(string s, vector<int>& p){
- int n = s.length();
- p.assign(n,0);
- for(int i = 1; i < n; ++i){
- for(int j = p[i-1]; ;j = p[j-1]){
- if(s[i]==s[j]){ p[i] = j+1; break;}
- if(!j) break;
- }
- }
- }
- int main(){
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cin >> n >> s;
- rs = s;
- reverse(rs.begin(),rs.end());
- s = rs+"#"+s+s;
- preffix_function(s,p);
- if(*max_element(p.begin(),p.end())==n) cout << max_element(p.begin(),p.end())-p.begin()-2*n;
- else cout << -1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement