Pagini recente » Cod sursa (job #485424) | Cod sursa (job #2585750) | Cod sursa (job #20767) | Cod sursa (job #1329519) | Cod sursa (job #123970)
Cod sursa(job #123970)
//bile2
#include<stdio.h>
#define max(a,b)((a)>(b)?(a):(b))
FILE*fin=fopen("bile2.in","r");
FILE*fout=fopen("bile2.out","w");
int main()
{
int n,d,i,g=0,o=0,nw=1,aux,j,k;
unsigned int a,b;
unsigned long long cp[1001][1001],cf[2][1001],sum;
fscanf(fin,"%d" "%d" "%d" "%d",&n,&d,&a,&b);
cp[1][0]=1;cp[1][1]=1;cp[0][1]=0;cp[0][0]=1;
for(i=2;i<=n;i++)
for(j=1;j<i;j++)
{
cp[i][j]=cp[i-1][j]+cp[i-1][j-1];
cp[i][i]=1;
cp[i][0]=1;
}
for(i=0;i<=n;i++)
cf[0][i]=0;
for(j=2;j<=n;j++,aux=o,o=nw,nw=aux)
{
sum=0;
for(i=j;i<=n;i++)
{
cf[nw][i]=0;
for(k=j-1;k<i-d;k++)
cf[nw][i]+=cf[o][k];
for(k=max(i-d,j-1);k<i;k++)
cf[nw][i]+=cp[k-1][j-2];
sum+=cf[nw][i];
if(sum*b>=cp[n][j]*a){g=1;fprintf(fout,"%d",j);break;}
}
if(g==1) break;
}
fclose(fin);
fclose(fout);
return 0;
}