Pagini recente » Cod sursa (job #2526141) | Cod sursa (job #135304) | Cod sursa (job #433097) | Cod sursa (job #1107722) | Cod sursa (job #2552533)
#include <bits/stdc++.h>
#define N 1000005
using namespace std;
ifstream fin ("prefix.in");
ofstream fout ("prefix.out");
int urm[N];
char p[N];
int main()
{int i,j,n,nr,sol,k;
fin>>nr;
fin.get();
for(i=1;i<=nr;++i)
{fin.getline(p+1,N);
n=strlen(p+1);
sol=k=0;
for(j=2;p[j];++j)
{while(k>0 && p[j]!=p[k+1])
k=urm[k];
if(p[j]==p[k+1])
k++;
urm[j]=k;
if(urm[j]!=0 && j%(j-urm[j])==0)
sol=j;
}
fout<<sol<<'\n';
}
return 0;
}