Cod sursa(job #987402)

Utilizator stefan.friptuPetru Stefan Friptu stefan.friptu Data 20 august 2013 16:39:21
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <cstdio>

using namespace std;

long n,x,i,rez,y,a[500001],p[500001];

int main () {
	
	freopen("reguli.in","r",stdin);
	freopen("reguli.out","w",stdout);
	
	scanf("%ld%ld",&n,&x);
	n--;
	
	for(i=1;i<=n;i++)
	{
		scanf("%ld",&y);
		a[i]=y-x;
		x=y;
	}
	
	int k=0;
	p[1]=0;
	for(i=2;i<=n;i++)
	{
		while(k>0 && a[k+1]!=a[i])
			k=p[k];
		p[i]=(k+=(a[k+1]==a[i]));
	}
	rez=n-p[n];
	
	printf("%ld\n",rez);
	
	for (i=1;i<=rez;++i)
		printf("%ld\n",a[i]);
	
	return 0;
}