Pagini recente » Cod sursa (job #281855) | Cod sursa (job #712179) | Cod sursa (job #277601) | Cod sursa (job #678131) | Cod sursa (job #1946758)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char str[1000010];
int phi[1000010];
int main ()
{
freopen ("prefix.in", "r", stdin);
freopen ("prefix.out", "w", stdout);
int t;
scanf ("%d\n", &t);
for (; t; --t)
{
gets (str + 1);
int n = strlen (str + 1);
int k = 0, ma = 0;
for (int i = 2; i <= n; ++i)
{
for (; k > 0 && str[k + 1] != str[i]; k = phi[k]);
if (str[k + 1] == str[i]) phi[i] = ++k;
if (k > 0 && i % (i - k) == 0) ma = i;
}
printf ("%d\n", ma);
}
return 0;
}