Pagini recente » Cod sursa (job #1186203) | Cod sursa (job #2232644) | Cod sursa (job #872264) | Cod sursa (job #69401) | Cod sursa (job #1495697)
#include<stdio.h>
#include<string.h>
#define N 1000000
char a[N+1];
int pi[N+1];
int main()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
int t;
scanf("%d ",&t);
while(t){
int k=0;
gets(a+1);
int n=strlen(a+1);
int i;
for(i=2;i<=n;i++){
while(k!=0&&a[i]!=a[k+1])
k=pi[k];
if(a[i]==a[k+1])
k++;
pi[i]=k;
}
i=n;
while(i!=0&&(pi[i]==0||i%(i-pi[i])!=0))
i--;
printf("%d\n",i);
t--;
}
return 0;
}