Cod sursa(job #7088)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 21 ianuarie 2007 12:25:51
Problema 1-sir Scor 10
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 0.69 kb
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define fin  "1-sir.in"
#define fout "1-sir.out"
#define Nmax 257
int n,s,sol;
FILE *in,*out;

void go(int p,int sum,int el) {
int i,tmp;
	
	//printf("%i ",el);
	
	if (p==n+1) { if (sum==s) sol++; }

	else
		if (p==1)
			for (i=0;i<=0;++i) {
				go(p+1,i,i);
			}
		else {
			if (rand()%2) {
				tmp=el+1;
				go(p+1,sum+tmp,tmp);
				tmp=el-1;
				go(p+1,sum+tmp,tmp);
			}
			else {
				tmp=el-1;
				go(p+1,sum+tmp,tmp);
				tmp=el+1;
				go(p+1,sum+tmp,tmp);
			}
		}
}

int main() {
	in=fopen(fin,"r"); out=fopen(fout,"w");
	fscanf(in,"%i%i",&n,&s);
	srand(time(0));
	go(1,0,0);
	fprintf(out,"%i\n",sol);
	
	fclose(in); fclose(out);

	return 0;
}