提交时间:2022-02-23 14:06:00

运行 ID: 45736

#include <bits/stdc++.h> using namespace std; const int MAXN=1000010; int n; int Next[MAXN]; char s[MAXN]; void change(int m,char*t) { Next[1]=0; for(int i=2,j=0; i<=m; i++) { while(j>0 && t[i]!=t[j+1]) j=Next[j]; if(t[i]==t[j+1]) j++; Next[i]=j; } } int main() { cin>>n; cin>>s+1; change(n,s); for(int i=n; i>=1; i--) if(!Next[i]) { cout<<i<<endl; break; } return 0; }