【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;   
}
相关文章
|
4月前
|
存储 编解码
1068 万绿丛中一点红 (20 分)
1068 万绿丛中一点红 (20 分)
|
4月前
|
测试技术
1039 到底买不买 (20 分)
1039 到底买不买 (20 分)
|
4月前
|
数据安全/隐私保护
1048 数字加密 (20 分)
1048 数字加密 (20 分)
|
10月前
|
算法
水手分椰子
水手分椰子
91 3
|
C语言 C++
1086 就不告诉你 (15 分)
做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。
350 0
1086 就不告诉你 (15 分)
牛几 (10 分)
牛几 (10 分)
129 0
L1-030 一帮一 (15 分)
L1-030 一帮一 (15 分)
126 0
L1-054 福到了 (15 分)
L1-054 福到了 (15 分)
138 0
7-14 到底有多二 (15 分)
7-14 到底有多二 (15 分)
150 0
7-12 藏头诗 (15 分)
7-12 藏头诗 (15 分)
376 0