AT_arc201_b [ARC201B] Binary Knapsack

Description

$ 1,2,\dots,N $ の番号がついた $ N $ 個の品物があります。 品物 $ i $ の重みは $ 2^{X_i} $ で価値は $ Y_i $ です。 重みの和が $ W $ 以下になるように品物を $ 0 $ 個以上選ぶとき、価値の和としてありうる最大値を求めて下さい。 $ T $ 個のテストケースが与えられるので、それぞれについて答えを求めて下さい。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ T $ $ \text{case}_1 $ $ \text{case}_2 $ $ \vdots $ $ \text{case}_T $ 各テストケースは以下の形式で与えられる。 > $ N $ $ W $ $ X_1 $ $ Y_1 $ $ X_2 $ $ Y_2 $ $ \vdots $ $ X_N $ $ Y_N $

Output Format

$ T $ 行出力せよ。 $ i $ 行目には $ i $ 番目のテストケースについて、価値の和としてありうる最大値を出力せよ。

Explanation/Hint

### Sample Explanation 1 $ 1 $ つ目のテストケースについて、各品物の重みと価値の組はそれぞれ $ (1,3),(8,2),(16,5),(8,4) $ です。 品物 $ 1,4 $ を選ぶと、重みの和は $ 1+8=9 (\le 16) $ 、価値の和は $ 3+4=7 $ となります。 $ 2 $ つ目のテストケースについて、品物を選ぶ個数は $ 0 $ でも良い点に注意して下さい。 ### Constraints - $ 1 \le T \le 10^5 $ - $ 1 \le N \le 2 \times 10^5 $ - $ 1 \le W \le 10^{18} $ - $ 0 \le X_i \lt 60 $ - $ 1 \le Y_i \le 10^9 $ - 全てのテストケースにおける $ N $ の総和は $ 2 \times 10^5 $ 以下 - 入力される値は全て整数