Pagini recente » Cod sursa (job #2074386) | Cod sursa (job #1660481) | Cod sursa (job #2684229) | Cod sursa (job #1295906) | Cod sursa (job #1284870)
#include <iostream>
#include <fstream>
#include <string.h>
#define NMAX 1000000
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
int p[NMAX],n,i,T;
char a[NMAX];
int main()
{
fin>>T;
while(T--)
{
fin>>(a+1);
for(unsigned i=2;a[i]!=0;++i)
{
int q=p[i-1];
while(q && a[q+1]!=a[i])
q=p[q];
if(a[q+1]==a[i])
p[i]=q+1;
}
int sol=0;
for(int i=strlen(a+1);i>=1;--i)
if(p[i]!=i&&p[i]!=0 &&i%(i-p[i])==0)
{
sol=i;
break;
}
fout<<sol<<" ";
}
return 0;
}