Pagini recente » Cod sursa (job #1015144) | Cod sursa (job #3243505) | Cod sursa (job #2926593) | Cod sursa (job #2233362) | Cod sursa (job #2717264)
#include <bits/stdc++.h>
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
char A[2000001];
int pi[2000001];
int main(){
int T;
f >> T;
while(T--){
f >> (A + 1);
int N = strlen(A + 1), q = 0, mx = 0;
pi[1] = 0;
for(int i = 2;i <= N;i++){
while(q && A[q + 1] != A[i])
q = pi[q];
if(A[q + 1] == A[i])
q++;
pi[i] = q;
if(q && i % (i - q) == 0)
mx = max(mx, i);
}
g << mx << "\n";
}
}