Pagini recente » Cod sursa (job #2609561) | Cod sursa (job #601684) | Cod sursa (job #160061) | Cod sursa (job #287356) | Cod sursa (job #76118)
Cod sursa(job #76118)
#include<stdio.h>
#define Nm 1000002
char S[Nm];
int Pi[Nm];
int solve()
{
int i,k,ans=0;
Pi[1]=k=0;
for(i=2;S[i];++i)
{
while(k && S[i]!=S[k+1])
k=Pi[k];
if(S[i]==S[k+1])
++k;
Pi[i]=k;
if(Pi[i] && i%(i-Pi[i])==0)
ans=i;
}
return ans;
}
int main()
{
int t;
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&t);
while(t--)
{
gets(S+1);
printf("%d\n",solve());
}
return 0;
}