B44 - Grid Operations
Editorial
/
Time Limit: 1 sec / Memory Limit: 1024 MB
配点: 1000 点
問題文
N \times N のマス目があり、上から i 行目・左から j 列目のマス (i, j) には整数 A_{i, j} が書かれています。以下の 2 種類の操作を処理するプログラムを作成してください。
- 交換操作:整数 x, y が与えられるので、x 行目と y 行目を交換する
- 取得操作:整数 x, y が与えられるので、マス (x, y) に書かれた整数を答える
制約
- 1 \leq N \leq 500
- 1 \leq Q \leq 200000
- 1 \leq A_{i, j} \leq 100
入力
入力は以下の形式で標準入力から与えられます。
Query_i は i 回目の操作を表し、交換操作の場合は 1 x y
、取得操作の場合は 2 x y
という形式で与えられます。
N A_{1, 1} A_{1, 2} \cdots A_{1, N} \vdots A_{N, 1} A_{N, 2} \cdots A_{N, N} Q Query_1 \vdots Query_Q
出力
取得操作に対する答えを順番に出力してください。
入力例 1
3 1 2 3 4 5 6 7 8 9 7 2 2 1 1 1 2 2 2 1 2 1 3 1 2 3 2 2 3 2 3 2
出力例 1
4 1 6 9 2
マス目は次のように変化します。
最初の状態:
1 2 3 4 5 6 7 8 9
2 回目の操作 1 1 2
により 1 行目と 2 行目が交換された後の状態:
4 5 6 1 2 3 7 8 9
5 回目の操作 1 2 3
により 2 行目と 3 行目が交換された後の状態:
4 5 6 7 8 9 1 2 3
入力例 2
2 8 16 32 64 3 2 2 1 1 1 2 2 2 1
出力例 2
32 8