L2-003 月饼 (25分)

挺简单的,注意下供不应求的情况即可

#include<stdio.h>
#include<stdlib.h>
struct zlh{
 double c;
 double d;
 double e;
};
int main(){
 int a,j=0;
 struct zlh yb[1001]={};
 double b,k=0,s=0,r=0,m=0;
 scanf("%d%lf",&a,&b);
 for(int i=1;i<=a;i++){
  scanf("%lf",&yb[i].c);
  r+=yb[i].c;
 }  
 for(int i=1;i<=a;i++){
  scanf("%lf",&yb[i].d);
  m+=yb[i].d;
  yb[i].e=yb[i].d/yb[i].c;
 }
 for(int i=1;i<a;i++)
  for(int t=i+1;t<=a;t++)
   if(yb[i].e<yb[t].e){
    struct zlh p;
    p=yb[i];
    yb[i]=yb[t];
    yb[t]=p;
   }
 if(r<b){
  printf("%.2lf\n",m);
  exit(0);
 } 
 while(k<b){
  j++;
  s+=yb[j].d;
  k+=yb[j].c;
 }
 s-=yb[j].d;
 s+=(b-k+yb[j].c)*yb[j].e;
 printf("%.2lf\n",s); 
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值