Pagini recente » Cod sursa (job #1463648) | Cod sursa (job #1047955) | Cod sursa (job #2399446) | Cod sursa (job #1367180) | Cod sursa (job #1080778)
#include<fstream>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
#define Nmax 1000001
int N,T,bst,pi[Nmax];
int i,k;
char p[Nmax];
int main()
{
f>>T;
for(int z=1;z<=T;z++)
{
f>>p+1;
pi[1]=0;
k=0;
bst=0;
for(i=2;p[i]!=(char)NULL;i++)
{
while(k>0&&p[k+1]!=p[i])
k=pi[k];
if(p[k+1]==p[i])
++k;
pi[i]=k;
}
N=i-1;
for(i=2;i<=N;i++)
if(i%(i-pi[i])==0&&pi[i]>=i/2)
bst=i;
g<<bst<<"\n";
}
return 0;
}