Pagini recente » Cod sursa (job #1271691) | Cod sursa (job #1767093) | Cod sursa (job #1709861) | Cod sursa (job #2001521) | Cod sursa (job #953945)
Cod sursa(job #953945)
#include <cstdio>
#include <cstring>
#define size 1000001
using namespace std;
char s[size];
int n, i, m, j, x, pi[size], nr;
int main()
{
freopen("prefix.in", "r", stdin);
freopen("prefix.out", "w", stdout);
scanf("%d", &n);
for(i=1;i<=n;i++)
{
scanf("%s", s+1);
m=strlen(s+1);
x=0; pi[1]=0;
for(j=2;j<=m;j++)
{
while(s[j]!=s[x+1]&&x>0)
x=pi[x];
if(s[j]==s[x+1])
x++;
pi[j]=x;
if(x&&(x%(j-x)==0))
nr=j;
}
printf("%d\n", nr);
}
return 0;
}