Pagini recente » Cod sursa (job #126973) | Cod sursa (job #1362207) | Cod sursa (job #481337) | Cod sursa (job #881156) | Cod sursa (job #1382112)
#include<fstream>
#include<cstring>
using namespace std;
int T, i, p[1000003], L, n;
char a[1000003];
ifstream in("prefix.in");
ofstream out("prefix.out");
int main(){
in>>T;
for(;T--;){
in>>a+1;
n=strlen(a+1);
L=0;
for(i=2; i<=n; i++){
p[i]=0;
while(L!=0 && a[i]!=a[L+1])
L=p[L];
if(a[i]==a[L+1])
L++;
p[i]=L;
}
for(i=n; i>=1; i--){
if(p[i]>0 && i%(i-p[i])==0){
out<<i<<"\n";
break;
}
}
if(i==0)
out<<"0\n";
}
return 0;
}