1441 开心购物免费淘
Time Limit : 2000/1000 MS(Java/Others) | Memory Limit : 65536/32768 KB(Java/Others)
Submits : 9 | Solved : 0
Description
免费,有这么好的事情吗?幸运真的降临到了CoCo身上。前阵子,CoCo参加某电视台“开心购物”的活动,获得了第一名,为此电视台奖励给CoCo一个免费购物的机会。但是,免费也是有条件约束的,那就是给CoCo一个可容纳c重量的背包,然后向CoCo提供了n种商品,CoCo可以免费获取这些商品中的全部或部分,条件是所拿物品的总重量不能超过背包能容纳的重量。已知商品i的重量为wi,价值为pi,且装包时货物可以拆开。那么请问,CoCo要怎样选择,才能使自己装包所得的物品总价值是最高呢?当然要小贪心一下了,所以请你帮CoCo设计一个合理的方案吧!
Input
输入分多行。第1行先输入两个数n和c,其中n是一个整数,表示商品的种类。c是一个浮点数,表示背包可容纳的重量。
接下去的n行表示n种商品,每行包含两个浮点数,分别表示该种商品的重量和价值。
Output
输出CoCo可以获取的商品的重量和价值,每种商品占据一行。如果某种商品需要拆开的,则还要输出获取的百分比,最后再输出CoCo所获取的所有商品的总价值,具体格式见样例。
Sample Input
5 90 32.5 56.2 25.3 40.5 37.4 70.8 41.3 78.4 28.2 40.2
Sample Output
weight=41.3 price=78.4 weight=37.4 price=70.8 weight=32.5 price=56.2 rate=34.8% total price=168.7
HINT
sample output表示CoCo可装包的物品分别为:
重量为41.3,价值为78.4的
重量为37.4,价值为70.8的
重量为32.5,价值为56.2的,只能装入34.8%
最后装包物品的总价值为168.7
Source
NBU OJ