Pagini recente » Cod sursa (job #1567542) | Cod sursa (job #1793081) | Cod sursa (job #609476) | Cod sursa (job #780036) | Cod sursa (job #470351)
Cod sursa(job #470351)
#include<fstream>
#define dmax 1000004
using namespace std;
ifstream in("prefix.in");
ofstream out("prefix.out");
int t,m,urm[dmax];
char p[dmax];
void prefix()
{ int i,x=0,mx=0;
for(i=2;i<=m;i++)
{
while( x>0 && p[x+1]!=p[i] )
x=urm[x];
if( p[i]==p[x+1] )
x++;
urm[i]=x;
if( i%(i-x)==0 && x )
mx=i;
}
out<<mx<<'\n';
}
int main()
{ int i;
in>>t;
for(;t;t--)
{ in>>p;
m=strlen(p);
for(i=m;i>=1;i--)
p[i]=p[i-1];
prefix();
}
in.close();
out.close();
return 0;
}