Pagini recente » Cod sursa (job #682386) | Cod sursa (job #1704131) | Cod sursa (job #2921673) | Cod sursa (job #1894625) | Cod sursa (job #2562426)
#include <bits/stdc++.h>
using namespace std;
ifstream in("prefix.in");
ofstream out("prefix.out");
const int NMAX = 1000003;
char s[NMAX];
int Pi[NMAX];
int i,n,now,r,q,j;
int main() {
in>>q;
for(int k=1;k<=q;k++){
in>>s;
n=strlen(s);
for(i=n;i>=1;i--)
s[i]=s[i-1];
r=0;
for(i=2;i<=n;i++) {
now=Pi[i-1];
while(now>0&&s[now+1]!=s[i])
now=Pi[now];
if(s[now+1]==s[i])
now++;
Pi[i]=now;
if (Pi[i]!=0&&i%(i-Pi[i])==0)
r=i;
}
out<<r<<"\n";
}
return 0;
}