Cod sursa(job #861389)

Utilizator tibi9876Marin Tiberiu tibi9876 Data 21 ianuarie 2013 14:11:24
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<iostream>
#include<string>
using namespace std;

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

int main()
{
	cin >> s;
	n=s.length();
	for (i=n;i>=1;i--)
		s[i]=s[i-1];
	for (i=2;i<=n;i++)
	{
		k=c[i-1];
		while ((s[k+1]!=s[i]) && (k!=0))
			k=c[k];
		if (s[k+1]==s[i])
		{
			c[i]=k+1;
			v[k+1]++;
		}
	}
	k=c[n];
	v[k]--;
	while ((v[k]==0) && (k!=0))
		k=c[k];
	if (k==0)
		cout << "Just a legend";
	else cout << s.substr(1,k);
	return 0;
}