Cod sursa(job #114028)

Utilizator the_chosen_oneCristian Badea the_chosen_one Data 12 decembrie 2007 13:32:57
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#include<math.h>
int x,v[25001],s[25001],n;
int calc(){
	/*int i;
	for(i=1;x;++i)
		x=x-i;
	n=i;
	*/
	int a;
	a=1+8*x;
	return (1+sqrt(a))/2;
}
void afis(){
	int i;
	for(i=1;i<=n;++i)
		printf("%d ",s[i]);
}
int valid(){
	int k=n;
	for(int i=2;i<n;i++)
		for(int j=i+1;j<=n;j++){
			if(v[k]!=s[i]+s[j])
				return 0;
			k++;
		}
	return 1;
}
int main(){
	freopen("sume.in","r",stdin);
	freopen("sume.out","w",stdout);
	int i,j,p;
	scanf("%d",&p);
	for(i=1;i<=p;++i)
		scanf("%d",&v[i]);
	x=p;
	n=calc();
	for(i=1;i<=v[1];++i){
		s[1]=i;
		for(j=2;j<=n;++j)
			s[j]=v[j-1]-i;
		if(valid()){
			printf("%d\n",n); 
			afis();
			fclose(stdin);
			fclose(stdout);
			return 0;
		}
	}
	printf("-1");
	fclose(stdin);
	fclose(stdout);
	return 0;
}