Cod sursa(job #574595)

Utilizator Robert29FMI Tilica Robert Robert29 Data 7 aprilie 2011 12:28:05
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#include<string.h>
using namespace std;
FILE*f=fopen("prefix.in","r");
FILE*g=fopen("prefix.out","w");
int i,nr,t,x,p[1000005];
char v[1000006];
void prep(int x){
	int k=0;
	p[1]=0;
	for(i=2;i<=x;++i){
		while(k>0&&v[k+1]!=v[i])
			k=p[k];
		
		if(v[k+1]==v[i])
			++k;
		
		p[i]=k;
		
		if(p[i]%(i-p[i])==0&&p[i])
			nr=i;
	}
	
}
int main() {
	fscanf(f,"%d\n",&t);
	for(int o=1;o<=t;++o){
		fscanf(f,"%s\n",v+1);
		v[0]='a';
		
		x=strlen(v)-1;
		v[0]=0;
		nr=0;
		prep(x);
		
		fprintf(g,"%d\n",nr);
		
	}
	
	fclose(g);
	fclose(f);
	return 0;
}