Cod sursa(job #470351)

Utilizator bog29Antohi Bogdan bog29 Data 13 iulie 2010 13:48:15
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<fstream>
#define dmax 1000004
using namespace std;
ifstream in("prefix.in");
ofstream out("prefix.out");

int t,m,urm[dmax];
char p[dmax];

void prefix()
{	int i,x=0,mx=0;
	
	for(i=2;i<=m;i++)
	{	
		while( x>0 && p[x+1]!=p[i] )
			x=urm[x];
		if( p[i]==p[x+1] )
			x++;
		urm[i]=x;
		if( i%(i-x)==0 && x )
			mx=i;
	}
	out<<mx<<'\n';
}	

int main()
{	int i;
	in>>t;
	for(;t;t--)
	{	in>>p;
		m=strlen(p);
		for(i=m;i>=1;i--)
			p[i]=p[i-1];
		prefix();
	}	
	in.close();
	out.close();
	return 0;
}