AT_abc189_e [ABC189E] Rotate and Flip
Description
[problemUrl]: https://atcoder.jp/contests/abc189/tasks/abc189_e
$ 2 $ 次元平面に $ N $ 個の駒が置かれています。駒には $ 1 $ から $ N $ までの番号が付いており、駒 $ i $ が置かれている座標は $ (X_i,Y_i) $ です。複数の駒が同じ座標に置かれている可能性もあります。
$ M $ 個の操作 $ \mathrm{op}_1,\ \ldots,\ \mathrm{op}_M $ を順に行います。操作は $ 4 $ 種類あり、入力形式と操作の内容は以下の通りです。
- `1`:全ての駒を、原点を中心に時計回りに $ 90 $ 度回転させた位置に移動する
- `2`:全ての駒を、原点を中心に反時計回りに $ 90 $ 度回転させた位置に移動する
- `3 p`:全ての駒を、直線 $ x=p $ について対称な位置に移動する
- `4 p`:全ての駒を、直線 $ y=p $ について対称な位置に移動する
クエリが $ Q $ 個与えられます。 $ i $ 番目のクエリでは $ 2 $ つの整数 $ A_i,B_i $ が与えられるので、$ A_i $ 個目の操作を行った直後に駒 $ B_i $ がある座標を出力してください。ここで、$ 1 $ 個目の操作の直前を「$ 0 $ 個目の操作の直後」とみなします。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ X_1 $ $ Y_1 $ $ \vdots $ $ X_N $ $ Y_N $ $ M $ $ \mathrm{op}_1 $ $ \vdots $ $ \mathrm{op}_M $ $ Q $ $ A_1 $ $ B_1 $ $ \vdots $ $ A_Q $ $ B_Q $
Output Format
各クエリに対する答えを、$ 1 $ 行に $ 1 $ つずつ、$ x $ 座標、$ y $ 座標の順に空白区切りで出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数
- $ 1\ \leq\ N\ \leq\ 2\times\ 10^5 $
- $ 1\ \leq\ M\ \leq\ 2\times\ 10^5 $
- $ 1\ \leq\ Q\ \leq\ 2\times\ 10^5 $
- $ -10^9\ \leq\ X_i,Y_i\ \leq\ 10^9 $
- $ \mathrm{op}_i $ は $ 4 $ つの操作の種類のいずれかの入力形式に従う
- `3 p` 及び `4 p` の操作において $ -10^9\ \leq\ p\ \leq\ 10^9 $
- $ 0\ \leq\ A_i\ \leq\ M $
- $ 1\ \leq\ B_i\ \leq\ N $
### Sample Explanation 1
最初、唯一の駒である駒 $ 1 $ は $ (1,2) $ に置かれています。各操作により駒 $ 1 $ の位置は $ (1,2)\to(2,-1)\to(4,-1)\to(1,4)\to(1,0) $ と変化します。