Pagini recente » Cod sursa (job #1912505) | Cod sursa (job #747122) | Cod sursa (job #3149536) | Cod sursa (job #357297) | Cod sursa (job #2443788)
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6;
int p[1 + N + 1];
void solve () {
string s;
cin >> s;
int n = s.size ();
p[0] = -1; p[1] = 0;
int ans = 0;
for (int i = 2; i <= n; i++) {
int cur = p[i - 1];
while (cur >= 0 && s[cur] != s[i - 1])
cur = p[cur];
p[i] = cur + 1;
if (p[i] > 0 && i % (i - p[i]) == 0)
ans = i;
}
cout << ans << "\n";
}
int main() {
freopen ("prefix.in", "r", stdin);
freopen ("prefix.out", "w", stdout);
int t;
cin >> t;
while (t--)
solve ();
return 0;
}