本文主要是介绍PAT B1020 -- 月饼,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目如下:LINK
代码如下:
#include <iostream>
#include <vector>
#include <algorithm>struct mooncake
{float totalWeight;float totalPrice;double unitPrice;
};bool mooncakeCmp(mooncake a, mooncake b) //按月饼价格降序排列
{return a.unitPrice > b.unitPrice;
}using namespace std;int main()
{int N, D;while (cin >> N >> D){vector<mooncake> a(N);for (int i = 0; i < N; i++){cin >> a[i].totalWeight;}for (int j = 0; j < N; j++){cin >> a[j].totalPrice;}for (int k = 0; k < N; k++){a[k].unitPrice = a[k].totalPrice / a[k].totalWeight;}sort(a.begin(), a.end(), mooncakeCmp);//跟据规则,先拿单位价格最高的float price = 0.0;for (int m = 0; m < N; m++){if (a[m].totalWeight > D){price += a[m].unitPrice * D;break;}else{price += a[m].totalPrice;D = D - a[m].totalWeight;}}//输出结果printf("%.2f", price);}return 0;
}
这篇关于PAT B1020 -- 月饼的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!