Pagini recente » Cod sursa (job #1870854) | Cod sursa (job #948755) | Cod sursa (job #2679802) | Cod sursa (job #3213585) | Cod sursa (job #1561841)
#include <iostream>
#include <cstdio>
#include <cstring>
#define MAXN 1000050
using namespace std;
char s[MAXN];
int pi[MAXN], n, t;
void solve()
{
int k, maxi;
pi[1] = k = maxi = 0;
for (int i = 2; i <= n; ++i) {
while (s[i-1] != s[k] && k)
k = pi[k];
if (s[i-1] == s[k])
k++;
pi[i] = k;
if (k<<1 >= i && k%(i-k) == 0)
maxi = i;
}
printf("%d\n", maxi);
}
int main()
{
freopen("prefix.in", "r", stdin);
freopen("prefix.out", "w", stdout);
scanf("%d\n", &t);
for (int i = 1; i <= t; ++i)
{
gets(s);
n = strlen(s);
solve();
}
return 0;
}