Pagini recente » Cod sursa (job #1455541) | Cod sursa (job #2963947) | Cod sursa (job #22342) | Cod sursa (job #1384739) | Cod sursa (job #219158)
Cod sursa(job #219158)
#include <cstdio>
#include <cstring>
#define N 1000100
char s[N];
int n,p[N],i,t,max;
void prefix()
{
int i,k=0;
for (i=2; i<=n; i++)
{
while (k && s[k+1]!=s[i]) k=p[k];
if (s[k+1]==s[i]) k++;
p[i]=k;
if (k && (i%(i-k)==0))
if (i>max) max=i;
}
}
int main()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&t);
for (; t; t--)
{
fgets(s+1,N,stdin);
n=strlen(s+1)-1;
max=0;
prefix();
printf("%d\n",max);
}
return 0;
}