Pagini recente » Cod sursa (job #196325) | Cod sursa (job #1499897) | Cod sursa (job #118680) | Cod sursa (job #2140135) | Cod sursa (job #614066)
Cod sursa(job #614066)
#include <fstream>
#include <string.h>
#define max_n 1000000
using namespace std;
int i,n,m,l[max_n],t,rez,z,k;
char s[max_n];
ifstream in("prefix.in");
ofstream out("prefix.out");
int main () {
in >> t;
in.getline(s+1,max_n);
for (z=1; z<=t; ++z) {
in.getline(s+1,max_n);
n=strlen(s+1);
k=l[1]=0;
rez=0;
for (i=2; i<=n; i++) {
while (k>0 && s[i]!=s[k+1])
k=l[k];
if (s[i]==s[k+1]) k++;
l[i]=k;
}
for (i=1; i<=n; ++i)
if (l[i] && i%(i-l[i])==0)
rez=i;
out << rez << '\n';
}
return 0;
}