Cod sursa(job #18957)

Utilizator DITzoneCAdrian Diaconu DITzoneC Data 18 februarie 2007 15:20:29
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include <stdio.h>

#define FOR(i,s,d) for(i=(s);i<(d);++i)
#define nmax 1<<19

int n,A[nmax],par[nmax];

int main()
{
	freopen("reguli.in","r",stdin);
	freopen("reguli.out","w",stdout);

	int i,j,a,b;

	scanf("%d",&n);
	scanf("%d",&a);
	FOR(i,1,n)
	{
		scanf("%d",&b);
		A[i]=b-a;
		a=b;
	}
	j=par[1]=0;
	FOR(i,2,n)
	{
		for(;j&&A[j+1]!=A[i];j=par[j]);								
		par[i]=(j+=A[j+1]==A[i]);
	}
	printf("%d\n",n-1-par[n-1]);
	FOR(i,1,n-par[n-1])
		printf("%d\n",A[i]);
	return 0;
}