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_ii 回目の操作を表し、交換操作の場合は 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