Pagini recente » Cod sursa (job #1585601) | Cod sursa (job #1690607) | Cod sursa (job #963185) | Cod sursa (job #2770226) | Cod sursa (job #203322)
Cod sursa(job #203322)
#include <stdio.h>
#include <string.h>
#define N 1000005
char s[N];int n,p[N];
void pii(){
int i,k=0,max=0;
p[1]=0;
for(i=2;i<=n;i++){
while(k>0 && s[k+1]!=s[i])
k=p[k];
if(s[k+1]==s[i]) k++;
p[i]=k;
if(k)
if(k%(i-k)==0)
max=i;
}
printf("%d\n",max);
}
void curat(){
for(int i=1;i<=n;i++)
s[i]='\0';
}
int main(){
int m;
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&m);
for(int i=1;i<=m;i++){
scanf("%s\n",s+1);
n=strlen(s+1);
pii();
curat();
}
return 0;
}