1020. 月饼 (25)
2017-12-10 15:31
155 查看
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。
注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15万吨第2种月饼、以及5万吨第3种月饼,获得 72 + 45/2 = 94.5(亿元)。
输入格式:
每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N表示月饼的种类数、以及不超过500(以万吨为单位)的正整数D表示市场最大需求量。随后一行给出N个正数表示每种月饼的库存量(以万吨为单位);最后一行给出N个正数表示每种月饼的总售价(以亿元为单位)。数字间以空格分隔。
输出格式:
对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后2位。
输入样例:
输出样例:
注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15万吨第2种月饼、以及5万吨第3种月饼,获得 72 + 45/2 = 94.5(亿元)。
输入格式:
每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N表示月饼的种类数、以及不超过500(以万吨为单位)的正整数D表示市场最大需求量。随后一行给出N个正数表示每种月饼的库存量(以万吨为单位);最后一行给出N个正数表示每种月饼的总售价(以亿元为单位)。数字间以空格分隔。
输出格式:
对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后2位。
输入样例:
3 20 18 15 10 75 72 45
输出样例:
94.50
#include<iostream> #include<cstdlib> int cmp(const void *a, const void *b); struct node { double sum_price; double storage; double price; }; int main() { using namespace std; int n, D; cin >> n >> D; node *cake = new node ; for (int i = 0; i < n; i++) cin >> cake[i].storage; for (int i = 0; i < n; i++) cin >> cake[i].sum_price; for (int i = 0; i < n; i++) cake[i].price = cake[i].sum_price / cake[i].storage; qsort(cake, n, sizeof(node), cmp); double money = 0; double total = 0;//货物吨位 int i = 0; while (true) { //if((D-(total + cake[i].storage))>=0.01) if (total + cake[i].storage <= D) { money = money + cake[i].sum_price; total = total + cake[i++].storage; } else { money = money + cake[i].price*(D - total); break; } if (i == n) break; } printf("%.2lf", money); } int cmp(const void *a, const void *b) { node *aa = (node *)a; node *bb = (node*)b; return (bb->price - aa->price)>=0.01; }
相关文章推荐
- 1020. 月饼 (25)
- B1020. 月饼 (25)
- 1020. 月饼 (25) Python篇
- PAT 乙级 1020. 月饼 (25)
- 1020. 月饼 (25)
- PAT 1020. 月饼 (25)
- 1020. 月饼 (25)
- 【PAT】(乙级)1020. 月饼 (25)
- PAT(B)1020. 月饼 (25)
- 1020. 月饼 (25)--PAT乙级
- 1020. 月饼 (25)
- 1020. 月饼 (25)
- 1020. 月饼 (25)
- PAT(Python)-1020:月饼(25)
- 1020. 月饼 (25)
- PAT1020月饼 (25)
- 1020. 月饼 (25) -- 做题记录
- 1020. 月饼 (25)
- PAT(basic level) 1020 月饼(25)
- 1020. 月饼 (25)