Pagini recente » Cod sursa (job #2909920) | Cod sursa (job #2804766) | Cod sursa (job #2011380) | Statistici Mihnea Dragos (idk12344) | Cod sursa (job #1291944)
#include<cstdio>
#include<algorithm>
#include<cstring>
int n,i,j,k,pi[1000005],t;
char s[1000005];
void prefix()
{
k=0;
pi[1]=0;
for (i=2;i<=n;i++)
{
while ((k)&&(s[i]!=s[k+1]))
k=pi[k];
if (s[i]==s[k+1]) k++;
pi[i]=k;
}
}
int main()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&t);
while (t--)
{
int ok=0;
gets(s+1);
n=strlen(s+1);
prefix();
for (i=n;i>=1;i--)
if ((pi[i])&&(!(i%(i-pi[i]))))
{
printf("%d\n",i);
ok=1;
break;
}
if (!ok) printf("%d\n",0);
}
return 0;
}