Cod sursa(job #342316)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 21 august 2009 12:29:14
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.45 kb
#include<stdio.h>
long long x[1<<19],a[1<<19];
int p[1<<19];
int i,k,N,ok;

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