Cod sursa(job #361322)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 4 noiembrie 2009 17:00:59
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>

int  x[510000],pi[510000],i,j,n,k;

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