Pagini recente » Cod sursa (job #2987641) | Cod sursa (job #2047232) | Cod sursa (job #1805321) | Cod sursa (job #3294018) | Cod sursa (job #2057686)
#include<fstream>
#include<iostream>
#include<vector>
#define DN 1000005
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
int t,pr[DN],k,y,z,p,nr;
string a;
int main()
{
fin>>t;
for(int h=1;h<=t;h++)
{
fin>>a;
pr[0]=-1;
k=-1;
nr=0;
for(int i=1;i<a.size();i++)
{
while(k!=-1&&a[k+1]!=a[i])
k=pr[k];
if(a[k+1]==a[i])
k++;
pr[i]=k;
if(pr[i]!=-1)
{
y=pr[i]+1;
z=i+1;
p=z-y;
if(z%p==0)
nr=z;
}
}
fout<<nr<<'\n';
}
}