Pagini recente » Cod sursa (job #2574456) | Cod sursa (job #2284157) | Istoria paginii runda/cnitv_baraj_2/clasament | Cod sursa (job #2412935) | Cod sursa (job #447629)
Cod sursa(job #447629)
#include <cstdio>
#include <cstring>
char s[1<<20];
int t,v[1<<20];
void citire()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&t);
}
void work()
{
int i,k=0,r=0;
for(int j=1;j<=t;++j)
{
gets(s);
for (i=strlen(s);i>0;--i)
s[i]=s[i-1];
v[1]=0;
for(i=2;i<=strlen(s);++i)
{
while (k && s[k+1]!=s[i])
k=v[k];
if (s[k+1]==s[i])
++k;
v[i]=k;
if (k && !(i %(i-k)))
r=i;
}
printf("%d\n",r);
}
}
int main()
{
citire();
work();
return 0;
}