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 翻译