Pagini recente » Cod sursa (job #1826366) | Cod sursa (job #732845) | Cod sursa (job #692387) | Cod sursa (job #2899375) | Cod sursa (job #1593246)
#include <bits/stdc++.h>
#define maxN 1000100
using namespace std;
char s[maxN];
int pi[maxN];
int n,t,i,k;
void KMP()
{
k = 0;
gets(s+1);
n = strlen(s+1);
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;
}
for(i = n; i > 1; i--)
{
int val = i-pi[i];
if(pi[i] && i%val == 0)
{
printf("%d\n", i);
return;
}
}
printf("0\n");
}
int main()
{
freopen("prefix.in", "r", stdin);
freopen("prefix.out", "w", stdout);
scanf("%d\n", &t);
while(t--)
KMP();
return 0;
}