Pagini recente » Cod sursa (job #2865395) | Cod sursa (job #1048685) | Cod sursa (job #767195) | Cod sursa (job #1635275) | Cod sursa (job #837113)
Cod sursa(job #837113)
#include<fstream>
#include<string.h>
#define ll long long
#define nmax 500008
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
int T;
int Pi[nmax* 2];
int K;
char s[10000009];
int main(){
fin >>T;
int M;
int max_per = 0;
for( ; T ; -- T){
fin >> s + 1;
Pi[1] = 0;
M = strlen(s + 1);
int max_per = 0;
for(int q = 0 , i = 2; s[i] ; i++){
for( ; q && s[i] != s[q + 1]; q = Pi[q]);
q += (s[q + 1] == s[i]);
Pi[i] = q;
}
for(int i = 1; i<= M / 2 + 1; i++)
{
if(Pi[i + 1] == 1)
for(int j = 2;i * j <= M && Pi[i * j] % i == 0 && Pi[i * j] ; j++)
if(max_per < i * j) max_per = i *j;
}
fout << max_per <<'\n';
}
return 0;
}