Pagini recente » Cod sursa (job #2173858) | Cod sursa (job #1413139) | Cod sursa (job #3151213) | Cod sursa (job #3276294) | Cod sursa (job #2452020)
#include <bits/stdc++.h>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
int t,i,n,l,j,k,urm[1000005],p[1000005];
char s[1000005];
int main()
{
f>>t;
for(i=1; i<=t; ++i)
{
f>>(s+1);
l=strlen(s+1);
k=0;
for(j=2; j<=l; ++j)
{
while(k && s[j]!=s[k+1])k=p[k];
if(s[k+1]==s[j])++k;
urm[j]=k;
}
for(j=l; j>=1; --j)
{
if(urm[j]!=0 && j%(j-urm[j])==0)
{
g<<j<<'\n';
break;
}
}
if(j==1)g<<0<<'\n';
if(j==0)g<<0<<'\n';
}
return 0;
}