Pagini recente » Cod sursa (job #1222069) | Cod sursa (job #1017657) | Cod sursa (job #3245089) | Rating vrabie gelu (gogol100) | Cod sursa (job #562129)
Cod sursa(job #562129)
#include<fstream>
#include<cstring>
#define NMAX 2000005
using namespace std;
char A[NMAX],B[NMAX];
int NA,NB;
int poz[1020];
int pi[NMAX];
ifstream in("prefix.in");
ofstream out("prefix.out");
inline void make_prefix()
{
int i,q=0,val=0;
for(i=2;i<=NA;i++)
{
while(q && A[q+1]!=A[i])
q=pi[q];
if(A[q+1]==A[i])
q++;
pi[i]=q;
if(q && !(i%(i-q)))
val=i;
}
out<<val<<"\n";
}
int main()
{
int i,q=0,nr=0,N;
for(in>>N;N;N--)
{
in>>A+1;
NA=strlen(A+1);
make_prefix();
}
return 0;
}