Pagini recente » Cod sursa (job #2435293) | Cod sursa (job #2381938) | Cod sursa (job #156138) | Cod sursa (job #56068) | Cod sursa (job #1317300)
#include<fstream>
#include<cstring>
using namespace std;
#define NMAX 1000005
ifstream fin("prefix.in");
ofstream fout("prefix.out");
int n,m,k,p[NMAX];
char a[NMAX];
int main()
{
int i,j;
fin>>n; fin.get();
for (j=1;j<=n;++j)
{
fin>>(a+1);
m=strlen(a+1);
for (k=0,i=2;i<=m;++i)
{
while (a[k+1]!=a[i] && k>0)
k=p[k];
if (a[k+1]==a[i])
++k;
p[i]=k;
}
for (i=m;i>0;--i)
if (i%(i-p[i])==0 && p[i])
break;
fout<<i<<"\n";
}
return 0;
}