【1070】Mooncake (25 分)

简介: 【1070】Mooncake (25 分)【1070】Mooncake (25 分)
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>  
#include<map>
#include<vector>
#include<queue> 
using namespace std;  
//key:策略-总是选择单价最高的月饼售出,可以获得最大的利润
struct mooncake{
  double store;  //库存量
  double sell;   //总售价
  double price;  //单价
}cake[1010];
bool cmp(mooncake a,mooncake b){ //按单价从高到低排序
  return a.price > b.price;
}  
int main(){   
  int n;
  double D;
  scanf("%d%lf",&n,&D);
  for(int i=0;i<n;i++){
    scanf("%lf",&cake[i].store); //库存
  }
  for(int i=0;i<n;i++){
    scanf("%lf",&cake[i].sell); //每种月饼的总售价
    cake[i].price=cake[i].sell / cake[i].store;  //计算单价
  }
  sort(cake,cake+n,cmp); //单价从高到低进行排序
  double ans=0; //收益
  for(int i=0;i<n;i++){
    if(cake[i].store <=D){ //如果需求量大于月饼库存量
      D -= cake[i].store;  //第i种月饼全部卖出
      ans += cake[i].sell;
    }else{ //如果月饼库存量高于需求量
      ans += cake[i].price*D; //只卖出剩余需求量的月饼
      break;
    }
  }   
  printf("%.2f\n",ans);
  system("pause"); 
    return 0;   
}
相关文章
|
6月前
|
存储 编解码
1068 万绿丛中一点红 (20 分)
1068 万绿丛中一点红 (20 分)
L1-044 稳赢 (15 分)
L1-044 稳赢 (15 分)
154 0
L1-044 稳赢 (15 分)
h0123. 素数判断 (20 分)
h0123. 素数判断 (20 分)
241 0
h0148. 66 (30 分)
h0148. 66 (30 分)
103 0
L3-011 直捣黄龙 (30 分)
L3-011 直捣黄龙 (30 分)
133 0
L1-010 比较大小 (10 分)
L1-010 比较大小 (10 分)
85 0
L1-017 到底有多二 (15 分)
L1-017 到底有多二 (15 分)
146 0
L1-055 谁是赢家 (10 分)
L1-055 谁是赢家 (10 分)
113 0
L1-054 福到了 (15 分)
L1-054 福到了 (15 分)
145 0
L1-031 到底是不是太胖了 (10 分)
L1-031 到底是不是太胖了 (10 分)
167 0