Pagini recente » Cod sursa (job #246581) | Cod sursa (job #532735) | Cod sursa (job #22690) | Cod sursa (job #1524833) | Cod sursa (job #2443789)
#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;
ios::sync_with_stdio (false);
cin.tie (0);
cout.tie (0);
cin >> t;
while (t--)
solve ();
return 0;
}