Cod sursa(job #19690)

Utilizator crusRus Cristian crus Data 19 februarie 2007 20:51:28
Problema Reguli Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define input "reguli.in"
#define output "reguli.out"
#define nmax 500001
long n,i,nr,pz;
long long v[nmax],s;
void citire()
{
	FILE *fin;
	fin=fopen(input,"r");
	fscanf(fin,"%lld",&n);
	for (i=1;i<=n;i++)
		fscanf(fin,"%lld",&v[i]);
	fclose(fin);
}
void solve()
{
	nr=1;
	for (i=2;i<n;i++)
		{
		 s=v[i+1]-v[i];
		 pz=i%nr;
		 if (pz==0) pz=nr;
		 if (s!=v[pz+1]-v[pz]) nr=i;
		}
}
void write()
{
	FILE *fout;
	fout=fopen(output,"w");
	fprintf(fout,"%lld\n",nr);
	for (i=1;i<=nr;i++)
		fprintf(fout,"%ld\n",v[i+1]-v[i]);
	fclose(fout);
}
int main()
{
	citire();
	solve();
	write();
	return 0;
}