Cod sursa(job #482376)

Utilizator S7012MYPetru Trimbitas S7012MY Data 3 septembrie 2010 14:36:53
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <cstdio>
#define DN 500005

int n,pi[DN],k;
long long a[DN];

void p() {
	for(int i=2; i<=n; ++i) {
		for(;k&&a[k+1]!=a[i];k=pi[k]);
		if(a[k+1]==a[i]) ++k;
		pi[i]=k;
	}
	k=n-pi[n];
}

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