Pagini recente » Cod sursa (job #244662) | Cod sursa (job #1764167) | Cod sursa (job #1306811) | Cod sursa (job #1222690) | Cod sursa (job #540788)
Cod sursa(job #540788)
#include<fstream.h>
ifstream f("prefix.in");
ofstream g("prefix.out");
char s[1000002],c,nr[5];
int n,t,l[1000002];
void kmp()
{ int i,j,m=0;
j=0;
for(i=2;i<=n;i++)
{while(j>0&&s[j+1]!=s[i]) j=l[j];
if(s[i]==s[j+1]) j++;
l[i]=j;
if(j && i%(i-j)==0)m=i;
}
g<<m<<'\n';
}
int main()
{ int k;
//f>>t>>c;
f.getline(nr,5);
t=atoi(nr);
s[0]='0';
for(k=0;k<t;k++){
f.getline(s+1,1000001);
n=strlen(s)-1;
kmp();
}
f.close(); g.close();
return 0;
}