Cod sursa(job #370943)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 2 decembrie 2009 20:20:13
Problema Bile2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
#include <cstring>

#define file_in "bile2.in"
#define file_out "bile2.out"

int comb[55][55],i,j,n,d,a,b,c[55][55];

inline int max(int a, int b) { return a>b?a:b; }

int main()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d %d %d", &n, &d, &a, &b);
	
	comb[0][0]=1;
	for (i=1;i<=n;++i)
	{
		comb[i][0]=1;
		for (j=1;j<=n;++j)
			 comb[i][j]=comb[i-1][j]+comb[i-1][j-1];
	}
	
/*	for (i=1;i<=n;++i)
	{
		for (j=1;j<=n;++j)
			 printf("%d ", comb[i][j]);
		printf("\n");
	}*/
	
	c[0][0]=1;	
	for (i=1;i<=n;++i)
	{
		c[0][i]=1;
		for (j=1;j<=n;++j)
			 c[i][j]=c[i][j-1]+c[i-1][max(j-d-1,0)];
	}
	
	/*for (i=1;i<=n;++i)
	{
		printf("%d ", c[i][n]);
		printf("\n");
	}*/
	
	for (i=1;i<=n;++i)
		if (comb[n][i]*(b-a)>=b*c[i][n])
		 {
			 printf("%d\n", i);
			 break;
		 }
		
		
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}