Pagini recente » Cod sursa (job #2862962) | Cod sursa (job #3206393) | Cod sursa (job #3270824) | Cod sursa (job #143243) | Cod sursa (job #468770)
Cod sursa(job #468770)
#include <cstdio>
#include <cstring>
#define DN 1000001
void p() {
int pi[DN];
char sir[DN];
int k=0,q,lg,lmax=0;
scanf("%s", sir+1);
lg=strlen(sir+1);
for(q=2; q<=lg; q++) {
for( ;k&&sir[k+1]!=sir[q]; k=pi[k]);
if(sir[k+1]==sir[q]) ++k;
pi[q]=k;
if(k&&!(q%(q-k))) lmax=q;
}
printf("%d\n",lmax);
}
int main()
{
int t;
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
for(scanf("%d",&t ); t; --t) p();
return 0;
}