Cod sursa(job #2606803)

Utilizator tonitzasimKevin Simon tonitzasim Data 28 aprilie 2020 17:46:35
Problema Prefix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.41 kb
#include<bits/stdc++.h>
using namespace std;
int vet[1000002];
char a[1000002];
int main(){
	int i,j,n,m,q,t,max=0;
cin>>t;
for(j=0;j<t;j++){
cin>>a+1;
m=strlen(a+1);
	vet[1]=0;
	q=0;
	
	for(i=2;i<=m;i++){
		while(q>0&&a[q+1]!=a[i])
		q=vet[q];
		if(a[q+1]==a[i])
		q++;
		vet[i]=q;
	}
	for(i=m;i>=1;i--){
		if(vet[i]>0&&i%(i-vet[i])==0){
			max=i;
		break;
	}
	}
	

cout<<max<<endl;
}
}