AT_abc199_c [ABC199C] IPFL
题目描述
有一个长度为 $2N$ 的字符串 $S$。
现在对这个字符串进行 $Q$ 次操作。第 $i$ 次操作给出三个整数 $T_i,\ A_i,\ B_i$,请按如下方式处理:
- 当 $T_i = 1$ 时:交换 $S$ 的第 $A_i$ 个字符和第 $B_i$ 个字符。
- 当 $T_i = 2$ 时:交换 $S$ 的前半部分 $N$ 个字符和后半部分 $N$ 个字符(此时 $A_i,\ B_i$ 的值不使用)。
例如,当 $S$ 为 `FLIP` 时,执行该操作后,$S$ 变为 `IPFL`。
请按照给定顺序依次处理这 $Q$ 个操作,输出最终的字符串 $S$。
输入格式
输入按以下格式从标准输入读入。
> $N$ $S$ $Q$ $T_1$ $A_1$ $B_1$ $T_2$ $A_2$ $B_2$ $T_3$ $A_3$ $B_3$ $\hspace{21pt}\ \vdots$ $T_Q$ $A_Q$ $B_Q$
输出格式
请输出所有操作处理后的字符串 $S$。
说明/提示
### 限制条件
- $1 \leq N \leq 2 \times 10^5$
- $S$ 是仅由大写英文字母组成的长度为 $2N$ 的字符串
- $1 \leq Q \leq 3 \times 10^5$
- $T_i$ 为 $1$ 或 $2$
- 当 $T_i = 1$ 时,$1 \leq A_i < B_i \leq 2N$
- 当 $T_i = 2$ 时,$A_i = B_i = 0$
### 样例解释 1
第 $1$ 次操作是将 $S$ 的前半部分 $N$ 个字符和后半部分 $N$ 个字符交换,因此 $S$ 变为 `IPFL`。
第 $2$ 次操作是将 $S$ 的第 $1$ 个字符和第 $4$ 个字符交换,因此 $S$ 变为 `LPFI`。
由 ChatGPT 4.1 翻译