#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$。

输入

输入以以下格式从标准输入给出:

NN

SS

QQ

T1T_1 A1A_1 B1B_1

T2T_2 A2A_2 B2B_2

T3T_3 A3A_3 B3B_3

\hspace{21pt} \vdots

TQT_Q AQA_Q BQB_Q

输出

在处理完所有查询后,输出字符串 $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