Cod sursa(job #6914)

Utilizator crusRus Cristian crus Data 21 ianuarie 2007 10:48:57
Problema 1-sir Scor 10
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 0.77 kb
#include <stdio.h>
#define input "1-sir.in"
#define output "1-sir.out"
#define nmax 260
long n,k,s[nmax],sol,niv,sum,suma;
void read()
{
	FILE *fin;
	fin=fopen(input,"r");
	fscanf(fin,"%ld %ld",&n,&sum);
	fclose(fin);
}
void write()
{
	FILE *fout;	
	fout=fopen(output,"w");
	fprintf(fout,"%ld",sol);
	fclose(fout);
}
void back(int niv)
{
	if (niv==n+1) 
		if (suma==sum) sol++;
	   else ;
	   else
	   {
		s[niv]=s[niv-1]+1;
		suma+=s[niv];		
		back(niv+1);
		suma-=s[niv];				
		s[niv]=s[niv-1]-1;
		suma+=s[niv];		
		back(niv+1);
		suma-=s[niv];			
	   }    
}
void solve()
{
	s[1]=0;
	niv=2;
	suma=0;
	if (sum==(n*(n-1))/2) sol=1;
	   else
		if (sum<(n*(n-1))/2) back(2);
}
int main()
{
	read();
	solve();
	write();
	return 0;
}