Pagini recente » Cod sursa (job #2080029) | Cod sursa (job #2653568) | Cod sursa (job #538974) | Cod sursa (job #3174426) | Cod sursa (job #1725168)
#include <bits/stdc++.h>
using namespace std;
char str[2000000];
int PI[2000000];
int main() {
freopen("prefix.in", "r", stdin);
freopen("prefix.out", "w", stdout);
int t;
cin >> t;
while(t--) {
cin >> (str + 1);
PI[0] = -1;
int ans = 0;
for(int i = 1; str[i]; ++i) {
int j = PI[i - 1];
while(j != -1 && str[j + 1] != str[i])
j = PI[j];
PI[i] = j + 1;
if(2 * PI[i] < i) continue;
if(i % (i - PI[i]) == 0)
ans = i;
}
cout << ans << '\n';
}
return 0;
}