Cod sursa(job #50324)

Utilizator megabyteBarsan Paul megabyte Data 7 aprilie 2007 14:34:22
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>
#define NMAX 524288
#define INF "reguli.in"
#define OUF "reguli.out"
long long a[NMAX],dif[NMAX];
int main()
{
	int i,n,k,p,q;
	FILE *in,*out;
	in=fopen(INF,"r");
	out=fopen(OUF,"w");
	fscanf(in,"%d",&n);
	for(i=0;i<n;i++) fscanf(in,"%lld",(a+i));
	for(i=1;i<n;i++) dif[i]=a[i]-a[i-1];
        
	p=1;q=1;k=p;
	for(i=2;i<n;i++)
	{
		//if(k>q) k=p;
		if(dif[k]==dif[i]) k++;
		else 
		{
			q=i;k=p;
			if(dif[i]==dif[p]) k++;
		}
	}
	
	fprintf(out,"%d\n",(n-k));
	for(i=1;i<=n-k;i++) fprintf(out,"%lld\n",dif[i]);
	fclose(in);fclose(out);
	return 0;
}