Pagini recente » Cod sursa (job #669606) | Cod sursa (job #68269) | Cod sursa (job #1129973) | Cod sursa (job #2663709) | Cod sursa (job #1653309)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
char S[1000100];
int p[1000100];
int T,rs;
int main(){
ios::sync_with_stdio(0);
fin.tie(0);
(fin >> T).ignore(1);
while(T--){
fin.getline(S+1,1000100);
int i,k;
k = p[1] = 0;
for(i = 2;S[i];i++){
while(k && S[k+1] != S[i])
k = p[k];
if(S[k+1] == S[i]) k++;
p[i] = k;
}
while(--i){
if(p[i] && p[i]%(i-p[i]) == 0){
fout << i << '\n';
break;
}
}
if(!i)fout << 0 << "\n";
}
}