Cod sursa(job #529901)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 6 februarie 2011 14:51:34
Problema Reguli Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
#define Nmax 500010

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

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