#dpe. [dp_e]Knapsack 2

[dp_e]Knapsack 2

問題文

NN 個の品物があります。 品物には 1,2,ldots,N1, 2, \\ldots, N と番号が振られています。 各 ii (1leqileqN1 \\leq i \\leq N) について、品物 ii の重さは wiw_i で、価値は viv_i です。

太郎君は、NN 個の品物のうちいくつかを選び、ナップサックに入れて持ち帰ることにしました。 ナップサックの容量は WW であり、持ち帰る品物の重さの総和は WW 以下でなければなりません。

太郎君が持ち帰る品物の価値の総和の最大値を求めてください。

制約

  • 入力はすべて整数である。
  • 1leqNleq1001 \\leq N \\leq 100
  • 1leqWleq1091 \\leq W \\leq 10^9
  • 1leqwileqW1 \\leq w_i \\leq W
  • 1leqvileq1031 \\leq v_i \\leq 10^3

入力

入力は以下の形式で標準入力から与えられる。

NN WW w1w_1 v1v_1 w2w_2 v2v_2 :: wNw_N vNv_N

出力

太郎君が持ち帰る品物の価値の総和の最大値を出力せよ。


入力例 1

3 8
3 30
4 50
5 60

出力例 1

90

品物 1,31, 3 を選べばよいです。 すると、重さの総和は 3+5=83 + 5 = 8 となり、価値の総和は 30+60=9030 + 60 = 90 となります。


入力例 2

1 1000000000
1000000000 10

出力例 2

10

入力例 3

6 15
6 5
5 6
6 4
6 6
3 5
7 2

出力例 3

17

品物 2,4,52, 4, 5 を選べばよいです。 すると、重さの総和は 5+6+3=145 + 6 + 3 = 14 となり、価値の総和は 6+6+5=176 + 6 + 5 = 17 となります。