Pagini recente » Cod sursa (job #2723199) | Cod sursa (job #759688) | Cod sursa (job #2734336) | Cod sursa (job #2790921) | Cod sursa (job #1496077)
#include<cstdio>
#include<algorithm>
#include<cstring>
char s[1000001];
int pi[1000001];
int main()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
int nr_teste;
scanf("%d ",&nr_teste);
for(int test=1;test<=nr_teste;test++)
{
scanf("%s",s+1);
int n=strlen(s+1);
int k=0;
pi[0]=0;
for(int i=2;i<=n;i++)
{
while(k>0 && s[i]!=s[k+1])
k=pi[k];
if(s[i]==s[k+1])
k++;
pi[i]=k;
}
/*for(int i=1;i<=n;i++)
printf("%d ",pi[i]);
printf("\n");*/
int i=n;
while(i!=0 && (pi[i]==0 || i%(i-pi[i])!=0))
i--;
printf("%d\n",i);
}
fclose(stdin);
fclose(stdout);
return 0;
}