Pagini recente » Cod sursa (job #2590733) | Cod sursa (job #3264831) | Cod sursa (job #1343165) | Cod sursa (job #1135941) | Cod sursa (job #733330)
Cod sursa(job #733330)
#include<stdio.h>
#include<string.h>
#define dim 1000010
char s[dim];
int p[dim],T,maxu,n;
void prefix(){
int i ,k=0 ;
p[1]=0 ;
maxu=0;
for( i = 2 ; s[i] ; i++ ){
while( k > 0 && s[k+1] != s[i] )
k = p[k];
if( s[k+1] == s[i] )
k++ ;
p[i]=k ;
if( k && ( i % ( i - k )== 0) )
maxu=i ;
}
}
int main()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&T);
for( ; T ; --T ){
scanf("%s\n",s+1);
maxu=0;
prefix();
printf("%d\n",maxu);
}
return 0;
}