Pagini recente » Cod sursa (job #2205327) | Cod sursa (job #1276394) | Cod sursa (job #441411) | Cod sursa (job #2926330) | Cod sursa (job #480891)
Cod sursa(job #480891)
using namespace std;
#include<iostream>
#include<fstream>
#include<cstring>
char a[1000003];
int N,T;
ofstream fout("prefix.out");
void solve()
{ cout<<1;
int i,k;
cout<<1;
int pi[1000003];
int max=0;
pi[1]=0;
k=0;
for(i=2;i<=N;i++)
{ // cout<<i;
while(k>0&&a[k+1]!=a[i])
k=pi[k];
if(a[k+1]==a[i]) k++;
pi[i]=k;
if(pi[i]!=0&&i%(i-pi[i])==0) max=i;
}
fout<<max<<"\n";
}
void cit()
{
ifstream fin("prefix.in");
fin>>T;
fin.get();
for(int i=1;i<=T;i++)
{
fin.getline(a+1,1000001);
N=strlen(a+1);
//cout<<N;
// cout<<1;
solve();
}
}
int main()
{
cit();
fout.close();
return 0;
}