Pagini recente » Cod sursa (job #2702087) | Cod sursa (job #1229389) | Cod sursa (job #3215621) | Cod sursa (job #3236856) | Cod sursa (job #3293237)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
int t, pref[1000005];
string s;
void prefix() {
int j;
for(int i=1; i<s.size(); i++) {
j=pref[i-1];
while(s[i]!=s[j] && j>0) {
j=pref[j-1];
}
if(s[i]==s[j]) {
j++;
}
pref[i]=j;
}
}
int main()
{
fin >> t;
while(t--) {
int maxi=0;
fin >> s;
prefix();
for(int i=0; i<s.size(); i++) {
if((i+1)%(i-pref[i]+1)==0 && pref[i]!=0) {
maxi=max(i+1, maxi);
}
}
fout << maxi << "\n";
}
return 0;
}