Cod sursa(job #529909)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 6 februarie 2011 15:12:22
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
#define Nmax 500010

int pi[Nmax],k,i,n,sol;
long long x,y,v[Nmax];

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