Cod sursa(job #856463)

Utilizator tibi9876Marin Tiberiu tibi9876 Data 16 ianuarie 2013 15:34:06
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<fstream>
#include<string>
using namespace std;

string s;
int i,j,k,n,m,c[1000005];

int main()
{
	ifstream f("prefix.in");
	ofstream g("prefix.out");
	f >> n;
	for (k=1;k<=n;k++)
	{
		f >> s;
		m=s.length();
		for (i=2;i<=m;i++)
		{
			j=c[i-1];
			while ((s[i-1]!=s[j]) && (j>0))
				j=c[j];
			if (s[i-1]==s[j])
				c[i]=j+1;	
			else c[i]=0;
		}
		for (i=m;i>=2;i--)
			if ((i%(i-c[i])==0) && (c[i]!=0))
			{
				g << i << "\n";
				break;
			}
		if (i==1)
			g << 0 << "\n";
	}
	return 0;
}