AT_pakencamp_2024_day3_1_f RGB Triangle
Description
二次元平面上に $ R $ 個の赤い点、 $ G $ 個の緑の点、 $ B $ 個の青い点があります。
$ i $ 番目の赤い点は $ (RX_i,RY_i) $ にあります。
$ i $ 番目の緑の点は $ (GX_i,GY_i) $ にあります。
$ i $ 番目の青い点は $ (BX_i,BY_i) $ にあります。
複数の点が同じ座標にある可能性もあります。
関数 $ \text{dist},\text{tri} $ を以下のように定義します。
- $ \text{dist}((x_1,y_1),(x_2,y_2))=|x_1-x_2|+|y_1-y_2| $
- $ \text{tri}(r,g,b)=\text{dist}((RX_r,RY_r),(GX_g,GY_g))+\text{dist}((GX_g,GY_g),(BX_b,BY_b))+\text{dist}((BX_b,BY_b),(RX_r,RY_r)) $
$ Q $ 個のクエリを処理してください。 $ i $ 番目のクエリでは整数の組 $ (x_i,y_i,z_i) $ が与えられるので、以下の値を求めてください。
- 以下の条件をすべて満たす整数の組 $ (s,t,u) $ についての $ \text{tri}(s,t,u) $ の最大値
- $ x_i=-1 $ なら $ 1\leq s\leq R $ 、 $ x_i\neq -1 $ なら $ s=x_i $
- $ y_i=-1 $ なら $ 1\leq t\leq G $ 、 $ y_i\neq -1 $ なら $ t=y_i $
- $ z_i=-1 $ なら $ 1\leq u\leq B $ 、 $ z_i\neq -1 $ なら $ u=z_i $
Input Format
入力は以下の形式で標準入力から与えられる。
> $ R $ $ G $ $ B $ $ RX_1 $ $ RY_1 $ $ RX_2 $ $ RY_2 $ $ \vdots $ $ RX_R $ $ RY_R $ $ GX_1 $ $ GY_1 $ $ GX_2 $ $ GY_2 $ $ \vdots $ $ GX_G $ $ GY_G $ $ BX_1 $ $ BY_1 $ $ BX_2 $ $ BY_2 $ $ \vdots $ $ BX_B $ $ BY_B $ $ Q $ $ x_1 $ $ y_1 $ $ z_1 $ $ x_2 $ $ y_2 $ $ z_2 $ $ \vdots $ $ x_Q $ $ y_Q $ $ z_Q $
Output Format
$ Q $ 行出力せよ。
$ i $ 行目には、 $ i $ 番目のクエリに対する答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
- $ 2 $ 番目のクエリについて、 $ \text{tri}(1,1,2) $ が最大です。
- $ 3 $ 番目のクエリについて、 $ \text{tri}(3,2,1) $ が最大です。
- $ 4 $ 番目のクエリについて、 $ \text{tri}(2,2,1) $ が最大です。
- $ 5 $ 番目のクエリについて、 $ \text{tri}(2,2,1) $ が最大です。
### Constraints
- $ 1\leq R,G,B $
- $ R+G+B\leq 200000 $
- $ 0\leq RX_i,RY_i,GX_i,GY_i,BX_i,BY_i\leq 10^9 $
- $ 1\leq Q\leq 200000 $
- $ 1\leq x_i\leq R $ または $ x_i=-1 $
- $ 1\leq y_i\leq G $ または $ y_i=-1 $
- $ 1\leq z_i\leq B $ または $ z_i=-1 $
- 入力はすべて整数