AT_arc051_d [ARC051D] 長方形
Description
[problemUrl]: https://atcoder.jp/contests/arc051/tasks/arc051_d
長さ $ W $ の数列 $ a_1,\ a_2,\ ...,\ a_W $ と、長さ $ H $ の数列 $ b_1,\ b_2,\ ...,\ b_H $ が与えられます。
左から $ i $ 番目、上から $ j $ 番目のマス目には $ a_i\ +\ b_j $ が書き込まれた、$ W\ \times\ H $ のマス目を考えます。
$ Q $ 個の以下のようなクエリが与えられるので、処理してください。
- $ A,\ B $ が与えられるので、左から $ A $ 番目以内、上から $ B $ 番目以内のマス目たちの中から、選んだ部分が長方形になるように幾つかマス目を選んだ時の、選んだマス目の値の総和の最大値を出力。
なお、マス目を $ 1 $ つも選ばないことはできません。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ W $ $ H $ $ a_1 $ $ a_2 $ ... $ a_W $ $ b_1 $ $ b_2 $ ... $ b_H $ $ Q $ $ A_1 $ $ B_1 $ $ A_2 $ $ B_2 $ : $ A_Q $ $ B_Q $
ただし、$ A_i,\ B_i $ はそれぞれ $ i $ 個目のクエリの $ A,\ B $ を表します。
Output Format
$ Q $ 行出力する。
$ i $ 行目には、$ i $ 番目のクエリの結果を出力する。
Explanation/Hint
### 制約
- $ 1\ ≦\ W,\ H\ ≦\ 2000 $
- $ 1\ ≦\ Q\ ≦\ 2000 $
- $ 1\ ≦\ A\ ≦\ W $
- $ 1\ ≦\ B\ ≦\ H $
- $ -100,000\ ≦\ a_i,\ b_i\ ≦\ 100,000 $