Pagini recente » Cod sursa (job #829044) | Cod sursa (job #3280466) | Cod sursa (job #1960540) | Cod sursa (job #2293450) | Cod sursa (job #1726461)
///PROMIT CA MAINE MA CULC DEVREME!
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1000005;
char str[NMAX];
int pi[NMAX];
int pkmp(int n) {
int ans = 0,
q = 0;
for(int i=2; i<=n; ++i) {
while(q>0 && str[q+1]!=str[i])
q = pi[q];
if(str[q+1]==str[i])
++q;
pi[i] = q;
if(pi[i] && i%(i-pi[i])==0)
ans = i;
}
return ans;
}
int main(void) {
freopen("prefix.in", "r", stdin);
freopen("prefix.out", "w", stdout);
int t;
scanf("%d",&t);
while(t--) {
scanf("%s",str+1);
printf("%d\n",pkmp(strlen(str+1)));
}
fclose(stdin);
fclose(stdout);
return 0;
}