Knapsack 2
题面翻译
N 个物品被编号为 1,2,…,N。对于 1≤i≤N,物品 i 的重量是 wi,价值是 vi。
太郎君决定从 N 个物品中选择一些放入背包中带回家。背包的容量为 W,带回的物品的总重量不能超过 W。
请计算太郎君能带回的物品的最大总价值。
输入格式
输入以以下格式从标准输入中提供:
N W
w1 v1
w2 v2
…
wN vN
输出格式
输出太郎君能带回的物品的最大总价值。
限制条件
- 所有输入均为整数。
- 1≤N≤100
- 1≤W≤109
- 1≤wi≤W
- 1≤vi≤103
样例解释 1
可以选择物品 1 和 3。这样,总重量为 3+5=8,总价值为 30+60=90。
样例解释 3
可以选择物品 2,4,5。这样,总重量为 5+6+3=14,总价值为 6+6+5=17。
题目描述
N 個の品物があります。 品物には 1, 2, …, N と番号が振られています。 各 i (1 ≤ i ≤ N) について、品物 i の重さは wi で、価値は vi です。
太郎君は、N 個の品物のうちいくつかを選び、ナップサックに入れて持ち帰ることにしました。 ナップサックの容量は W であり、持ち帰る品物の重さの総和は W 以下でなければなりません。
太郎君が持ち帰る品物の価値の総和の最大値を求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
N W w1 v1 w2 v2 : wN vN
输出格式
太郎君が持ち帰る品物の価値の総和の最大値を出力せよ。
样例 #1
样例输入 #1
样例输出 #1
样例 #2
样例输入 #2
样例输出 #2
样例 #3
样例输入 #3
样例输出 #3
提示
制約
- 入力はすべて整数である。
- 1 ≤ N ≤ 100
- 1 ≤ W ≤ 109
- 1 ≤ wi ≤ W
- 1 ≤ vi ≤ 103
Sample Explanation 1
品物 1, 3 を選べばよいです。 すると、重さの総和は 3 + 5 = 8 となり、価値の総和は 30 + 60 = 90 となります。
Sample Explanation 3
品物 2, 4, 5 を選べばよいです。 すると、重さの総和は 5 + 6 + 3 = 14 となり、価値の総和は 6 + 6 + 5 = 17 となります。