Cod sursa(job #861193)

Utilizator tibi9876Marin Tiberiu tibi9876 Data 21 ianuarie 2013 09:51:44
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<fstream>
using namespace std;

int a[500001],c[500001],i,j,n;

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