Pagini recente » Cod sursa (job #1993141) | Cod sursa (job #636635) | Cod sursa (job #2487529) | Cod sursa (job #2910036) | Cod sursa (job #1384807)
#include <fstream>
#include <cstdio>
#define LG 1000003
#include <cstring>
using namespace std;
ofstream fout("prefix.out");
int d,L,vmax,t,v[LG],nr;
char a[LG],ch;
int solve()
{
L=1; v[1]=0; vmax=0;
d=strlen(a+1); nr=1;
for(int i=2;i<=d;i++)
{
if(a[i]==a[i-L])
{
v[i]=v[i-1]+1;
}
else
{
if(nr>vmax && nr!=L) vmax=nr;
if(a[i]==a[1]) L=i-1,v[i]=1;
else L=i,v[i]=0;
nr=L;
}
if(v[i]==L)
v[i]=0,nr+=L;
}
if(nr>vmax && nr!=L && v[d]==0) vmax=nr;
return vmax;
}
int main()
{
freopen("prefix.in","r",stdin);
scanf("%d%c",&t,&ch);
for(int i=1;i<=t;i++)
{
scanf("%s",&*(a+1));
fout<<solve()<<'\n';
}
return 0;
}