Pagini recente » Cod sursa (job #402488) | Cod sursa (job #2402479) | Cod sursa (job #132257) | Cod sursa (job #2169117) | Cod sursa (job #2288925)
#include <bits/stdc++.h>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
int N,l,i,n,k,ok,p[1000010];
char s[1000010];
int main()
{
f>>N;
for(l=1;l<=N;l++)
{
f>>s+1;
n=strlen(s+1);
k=0;
for(i=2;i<=n;i++){
for(;k!=0 && s[k+1]!=s[i];)k=p[k];
if(s[k+1]==s[i])k++;
p[i]=k;
}
ok=0;
for(i=n;i>=1;i--)
if(p[i]!=0&& i%(i-p[i])==0){
ok=1;
g<<i<<'\n';
break;
}
if(ok==0)g<<0<<'\n';
}
return 0;
}