CF222B Cosmic Tables

题目描述

给定一个 $n\times m$ 的矩阵与 $k$ 次操作,每次操作有以下三种类别: - 交换第 $x_i$ 列与第 $y_i$ 列; - 交换第 $x_i$ 行与第 $y_i$ 行; - 查询位于第 $x_i$ 行第 $y_i$ 列的数。

输入格式

输入的第一行有三个整数 $n,m,k$ ( $1\le n,m\le 10^3$ , $1\le k\le 10^5$),分别表示该矩阵的行数、列数与操作个数。 接下来 $k$ 行,每行输入一个字符 $s_i$ ( $s_i$ 只会是 "c","r","g" 中的一个 ) 与两个整数 $x_i,y_i$ ( $1\le x_i\le n,y_i\le m$ )。 - 若 $s_i$ 为 "c",则交换第 $x_i$ 列与第 $y_i$ 列 ( 保证 $x_i \ne y_i$ ); - 若 $s_i$ 为 "r",则交换第 $x_i$ 行与第 $y_i$ 行 ( 保证 $x_i \ne y_i$ ); - 若 $s_i$ 为 "g",则查询此时位于第 $x_i$ 行第 $y_i$ 列的数。

输出格式

对于每个 $s_i=$ "g",输出查询的结果。 Translated by $\operatorname{Rosmarinus}$.

说明/提示

Let's see how the table changes in the second test case. After the first operation is fulfilled, the table looks like that: 2 1 4 1 3 5 After the second operation is fulfilled, the table looks like that: 1 3 5 2 1 4 So the answer to the third query (the number located in the first row and in the third column) will be 5.