Pagini recente » Cod sursa (job #1312388) | Cod sursa (job #723676) | Cod sursa (job #1853829) | Cod sursa (job #808467) | Cod sursa (job #3132514)
#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
using namespace std;
int main() {
freopen("prefix.in", "r", stdin);
freopen("prefix.out", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
cin >> t;
while (t--) {
string s;
cin >> s;
int m = s.size(), i = 1, max = 0;
int f[m + 1];
f[0] = -1;
// cout << -1 << " ";
for (; i <= m; i++) {
int k = f[i - 1];
while (k != -1 && s[i - 1] != s[k]) {
k = f[k];
}
f[i] = k + 1;
// cout << f[i] << " ";
int period = i - f[i];
if (period <= f[i]) {
int len = (i / period) * period;
if (len > max) {
max = len;
}
}
}
// cout << endl;
cout << max << endl;
}
return 0;
}