Pagini recente » Cod sursa (job #1151454) | Cod sursa (job #267784) | Cod sursa (job #48893) | Cod sursa (job #2458524) | Cod sursa (job #2322265)
#include <bits/stdc++.h>
int v[10000000];
char ch[1000000];
int main()
{
int n,k,i,j,q,mx,co;
char c;
FILE*fi,*fo;
fi=fopen("prefix.in","r");
fo=fopen("prefix.out","w");
fscanf(fi,"%d",&n);
for(i=0; i<n; i++)
{
c=fgetc(fi);
k=0;
j=1;
ch[j]=c;
j++;
c=fgetc(fi);
while(c!='\n' && c!=EOF)
{
ch[j]=c;
while(k>0 && c!=ch[k+1])
{
k=v[k];
}
if(c==ch[k+1])
k++;
v[j]=k;
j++;
c=fgetc(fi);
}
mx=0;
for(q=1; q<=j; q++)
{
if(v[q]>0 && v[q]%(q-v[q])==0)
mx=q;
}
fprintf(fo,"%d\n",mx);
}
fclose(fi);
fclose(fo);
return 0;
}