Cod sursa(job #18303)

Utilizator damaDamaschin Mihai dama Data 18 februarie 2007 11:20:42
Problema Reguli Scor 70
Compilator cpp Status done
Runda preONI 2007, Runda 2, Clasele 11-12 Marime 0.71 kb
#include <stdio.h>

long long n, v[500001];

int main()
{
	freopen("reguli.in","r",stdin);
	freopen("reguli.out","w",stdout);
	
	long long a, b, i, len = 1, ok = 0;
	
	scanf("%lld", &n);
	for(i = 0; i < n; ++i)
	{
		scanf("%lld", &v[i]);
	}
	for(i = n - 1; i > 0; --i)
	{
		v[i] -= v[i - 1];
	}
	
	
	while(!ok)
	{
		ok = 1;
		for(i = len + 1; i < n; ++i)
		{
			if(i % len == 0)
			{
				if(v[i] != v[len])
				{
					ok = 0;
					len = i;
					break;
				} 
			}
			else
			{
				if(v[i] != v[i % len])
				{
					ok = 0;
					len = i;
					break;
				}
			}
		}
	}
	
	printf("%lld\n", len);
	
	for(i = 1; i <= len; ++i)
	{
		printf("%lld\n", v[i]);
	}
	
	return 0;
}