Pagini recente » Cod sursa (job #1429315) | Cod sursa (job #2979726) | Cod sursa (job #1261113) | Cod sursa (job #277644) | Cod sursa (job #514090)
Cod sursa(job #514090)
#include<stdio.h>
#include<string.h>
int pi[1000005];
char p[1000005];
int n,t,q,sol;
int main ()
{
int i;
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&t);
for(;t;t--)
{
p[0]=' ';
fgets(p+1,sizeof(p)-1,stdin);
n=strlen(p+1);
while(!(p[n]>='a' && p[n]<='z'))
n--;
q=0;sol=0;
for(i=2;i<=n;i++)
{
while(q>0 && p[q+1]!=p[i])
q=pi[q];
if(p[q+1]==p[i])
q++;
pi[i]=q;
if(pi[i] && i%(i-pi[i])==0)
sol=i;
}
printf("%d\n",sol);
}
return 0;
}