Cod sursa(job #84919)

Utilizator savimSerban Andrei Stan savim Data 18 septembrie 2007 16:59:35
Problema Reguli Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
int main()
{
	int x[500],a[500],not[500];
	int t,n,k,i,j,gas;
	FILE *f1,*f2;

	f1=fopen("reguli.in","r");
	f2=fopen("reguli.out","w");

	fscanf(f1,"%d",&n);
	n--;
	for (i=0; i<=n; i++)
		fscanf(f1,"%d",&x[i]);


	for (k=1; k<=n; k++)
	{
		for (i=1; i<=k; i++)
			not[i]=0;
		gas=0;
		for (i=1; i<=n; i++)
		{
			t=x[i]-x[i-1];
			if (i%k!=0)
				if (not[i%k]==1 && t!=a[i%k]) gas=1;
				else
				{
					a[i%k]=t;
					not[i%k]=1;
				}
			else
				if (not[k]==1 && t!=a[k]) gas=1;
				else
				{
					a[k]=t;
					not[k]=1;
				}
			if (gas==1) break;
		}
		if (gas==0)
		{
			fprintf(f2,"%d\n",k);
			for (i=1; i<=k; i++)
				fprintf(f2,"%d\n",a[i]);
			break;
		}
	}

	fclose(f1);
	fclose(f2);
	return 0;
}