Cod sursa(job #733329)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 11 aprilie 2012 20:52:20
Problema Prefix Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<cstdio>
#define dim 1000004
using namespace std;


char s[dim];
int p[dim],t,n;
void prefix(){
	

	
	p[1]=0;
	int k=0;
	int i;
	int maxu=0;
	for(i=2;s[i]!=0;i++){
		
		while( k>0  && s[k+1]!=s[i] )
			k=p[k];
		
		if(s[k+1]==s[i])
			k++;
		if(k>0 && i%(i-k)==0)
				maxu=i;
		p[i]=k;
		
	}
	
	printf("%d\n",maxu);
	
}
int main () {
	
	freopen("prefix.in","r",stdin);
	freopen("prefix.out","w",stdout);
	scanf("%d",&t);
	for(   ; t ; t--   ){  
		scanf("%s",s+1);
		prefix();
	}
	return 0;
	
}