Cod sursa(job #481210)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 30 august 2010 21:20:27
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<algorithm>
using namespace std;
long long a[500002],x,y;
int n,i,j,k;
int pi[500002];
int main()
{
	freopen("reguli.in","r",stdin);
	freopen("reguli.out","w",stdout);
	
	scanf("%d",&n);

	scanf("%lld",&x);
	for(i=2;i<=n;i++)
	{
		scanf("%lld",&y);
		a[i-1]=y-x;
		x=y;
	}
	--n;
	for(i=2;i<=n;i++)
	{
		while(k&&a[k+1]!=a[i])
			k=pi[k];

		if(a[k+1]==a[i])
			k++;
		pi[i]=k;
	}

	printf("%d\n",k=n-pi[n]);
	for(i=1;i<=k;i++)
		printf("%lld\n",a[i]);

	return 0;
}