题目描述
長さ 2N の文字列 S があります。
この文字列に対して Q 個のクエリが与えられます。i 番目のクエリでは 3 つの整数 Ti, Ai, Bi が与えられるので、以下の処理をします。
- Ti = 1 のとき : S の Ai 文字目と Bi 文字目を入れ替える
- Ti = 2 のとき : S の前半 N 文字と後半 N 文字を入れ替える(Ai, Bi の値は用いない)
例えば S が FLIP
のときにこのクエリを処理すると、S は IPFL
となる。
これら Q 個のクエリを与えられた順に全て処理した後の S を出力してください。
输入格式
入力は以下の形式で標準入力から与えられる。
N S Q T1 A1 B1 T2 A2 B2 T3 A3 B3 ⋮ TQ AQ BQ
输出格式
クエリ処理後の S を出力せよ。
题目大意
题目描述:
给你一个长度为 2N 的字符串,你将进行 Q 次操作,操作分两种:
- Ti=1 将第 Ai 个字符与第 Bi 个字符进行交换。
- Ti=2 将前 N 个字符移动到后 N 个字符后面。
输出进行了 Q 次操作后的字符串。
2
FLIP
2
2 0 0
1 1 4
LPFI
2
FLIP
6
1 1 3
2 0 0
1 1 2
1 2 3
2 0 0
1 1 4
ILPF
提示
制約
- 1 ≤ N ≤ 2 × 105
- S は長さ 2N の英大文字のみからなる文字列
- 1 ≤ Q ≤ 3 × 105
- Ti は 1 または 2
- Ti = 1 のとき、1 ≤ Ai < Bi ≤ 2N
- Ti = 2 のとき、Ai = Bi = 0
Sample Explanation 1
1 番目のクエリでは S の前半 N 文字と後半 N 文字を入れ替えるため、S は IPFL
となります。 2 番目のクエリでは S の 1 文字目と 4 文字目を入れ替えるため、S は LPFI
となります。