AT_abc426_g [ABC426G] Range Knapsack Query
Description
$ 1 $ から $ N $ までの番号が付けられた $ N $ 個のアイテムがあります。 アイテム $ i $ の **重み** は $ W_i $ 、**価値** は $ V_i $ です。
$ Q $ 個のクエリが与えられるので、順に処理してください。 $ j $ 番目のクエリは以下の通りです。
- 整数 $ L_j, R_j, C_j\ (1\leq L_j\leq R_j\leq N) $ が与えられる。 アイテム $ L_j,L_j+1,\dots,R_j $ のうちいくつか( $ 0 $ 個でもよい)を、重みの総和が $ C_j $ を超えないように選ぶとき、選んだアイテムの価値の総和が最大でいくつになるか求めよ。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ W_1 $ $ V_1 $ $ W_2 $ $ V_2 $ $ \vdots $ $ W_N $ $ V_N $ $ Q $ $ L_1 $ $ R_1 $ $ C_1 $ $ L_2 $ $ R_2 $ $ C_2 $ $ \vdots $ $ L_Q $ $ R_Q $ $ C_Q $
Output Format
$ Q $ 行出力せよ。 $ i $ 行目 $ (1\leq i \leq Q) $ には、 $ i $ 番目のクエリに対する答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ 番目のクエリについて、アイテム $ 1,2,3,4 $ のうちアイテム $ 2,4 $ を選ぶと、重みの総和は $ 5+2=7 $ となり $ C_1=7 $ を超えず、価値の総和として $ 8+3=11 $ を達成できます。これが最大です。
$ 2 $ 番目のクエリについて、アイテム $ 2,3,4 $ 全てを選んでも、重みの総和は $ 5+1+2=8 $ となり $ C_2=10 $ を超えず、価値の総和として $ 8+2+3=13 $ を達成できます。
$ 3 $ 番目のクエリについて、アイテム $ 1,2 $ のいずれも重みが $ C_3=2 $ を超えているため、一つもアイテムを選ぶことができず、価値の総和の最大値は $ 0 $ になります。
### Constraints
- $ 1\leq N \leq 2\times 10^4 $
- $ 1\leq Q \leq 2\times 10^5 $
- $ 1\leq W_i \leq 500 $
- $ 1\leq V_i \leq 10^9 $
- $ 1\leq L_j \leq R_j \leq N $
- $ 1\leq C_j \leq 500 $
- 入力は全て整数