Pagini recente » Cod sursa (job #1506867) | Cod sursa (job #381147) | Cod sursa (job #1284412) | Cod sursa (job #1340102) | Cod sursa (job #1675463)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 7;
char s[MAXN];
int pi[MAXN];
void answer()
{
int n = strlen(s+1);
int ans = 0;
pi[1] = 0;
for(int i = 2, q = 0; i <= n; ++i)
{
while(q && s[q + 1] != s[i])
q = pi[q];
if(s[q + 1] == s[i]) ++ q;
pi[i] = q;
}
for(int i = n - 1 ; i > 1 ; --i)
{
if(pi[i] && i % (i - pi[i]) == 0)
{
printf("%d\n", i);
return;
}
}
printf("%d\n", 0);
}
int main()
{
freopen("prefix.in", "r", stdin);
freopen("prefix.out", "w", stdout);
int t;
scanf("%d\n", &t);
while(t--)
{
scanf("%s\n", s + 1);
answer();
}
return 0;
}