Pagini recente » Cod sursa (job #2535936) | Cod sursa (job #2424538) | Cod sursa (job #19493) | Cod sursa (job #3151218) | Cod sursa (job #598895)
Cod sursa(job #598895)
#include <cstdio>
#include <fstream>
#include <cstring>
using namespace std;
int p[1000001];
char v[1000001];
int main ()
{
int t,n,m,q,i;
ifstream in ("prefix.in");
freopen ("prefix.out","w",stdout);
in>>t;
in.getline(v,1000001);
for(;t;--t){
memset(p,0,sizeof(p));
m=0;
in.getline(v,1000001);
n=strlen(v);
q=0;
for(i=1;i<n;++i){
for(;q&&v[q]!=v[i];q=p[q-1]);
if(v[q]==v[i])
++q;
p[i]=q;
if(p[i]&&!((i+1)%((i+1)-p[i])))
m=i+1;
}
printf("%d\n",m);
}
return 0;}