Cod sursa(job #1046943)

Utilizator drobertDumitru Robert drobert Data 3 decembrie 2013 18:41:47
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <fstream>
using namespace std;
ifstream cin( "reguli.in" );
ofstream cout( "reguli.out" );

long long n, x, y, ind, t, q;
long long v[ 500001 ], p[ 500001 ];
int main()
{
	int i, j;
	cin >> n;
	cin >> x;
	for ( i = 1; i <= n; i++ )
	{
		cin >> y;
		v[ i ] = y - x;
		x = y;
	}
	j = 0;
	n--;
	for ( i = 2; i <= n; i++ )
	{
		while ( j && v[ j + 1 ] != v[ i ] )
			j = p[ j ];
		if ( v[ j + 1 ] == v[ i ] )
			j++;
		p[ i ] = j;
	}
	t = n - p[ n ];
	cout << t << '\n';
	for ( i = 1; i <= t; i++ )
		cout << v[ i ] << '\n';
}