#AT1777. C - IPFL
C - IPFL
C - IPFL
分数:300 分
问题描述
给定一个长度为 $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$。
约束
- $1 \le N \le 2 \times 10^5$
- $S$ 是一个包含 $2N$ 个大写英文字母的字符串。
- $1 \le Q \le 3 \times 10^5$
- $T_i$ 的取值为 $1$ 或 $2$。
- 如果 $T_i = 1$,$1 \le A_i \lt B_i \le 2N$。
- 如果 $T_i = 2$,$A_i = B_i = 0$。
输入
输入以以下格式从标准输入给出:
输出
在处理完所有查询后,输出字符串 $S$。
2
FLIP
2
2 0 0
1 1 4
LPFI
第一个查询交换了 $S$ 的前 $N$ 个字符和后 $N$ 个字符,将其变成了 IPFL
。
第二个查询交换了 $S$ 的第一个字符和第四个字符,将其变成了 LPFI
。
2
FLIP
6
1 1 3
2 0 0
1 1 2
1 2 3
2 0 0
1 1 4
ILPF