#4303. IPFL(IPFL)

IPFL(IPFL)

题目描述

我们有一个长度为2N2N的字符串SS。你将收到QQ个关于这个字符串的查询。在第ii个查询中,给定三个整数Ti,Ai,BiT_i, A_i, B_i,执行以下操作:

  • 如果Ti=1T_i = 1:交换SS的第AiA_i个和第BiB_i个字符;
  • 如果Ti=2T_i = 2:交换SS的前NN个字符和后NN个字符。

例如,如果SS是"FLIP",这个查询会将其变为"IPFL"。

处理完所有QQ个查询后,输出最终的字符串SS

输入格式

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

NN

SS

QQ

T1T_1 A1A_1 B1B_1

T2T_2 A2A_2 B2B_2

T3T_3 A3A_3 B3B_3

TQT_Q AQA_Q BQB_Q

输出格式

输出处理完所有查询后的字符串SS

样例

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解释

第1个查询交换SS的前NN个字符和后NN个字符,使其变为"IPFL"。
第2个查询交换SS的第1个和第4个字符,使其变为"LPFI"。

数据范围

  • 1N2×1051 ≤ N ≤ 2 × 10^5
  • SS是一个长度为2N2N的由大写英文字母组成的字符串
  • 1Q3×1051 ≤ Q ≤ 3 × 10^5
  • TiT_i是1或2。
  • 如果TiT_i = 1,则1Ai<Bi2N1 ≤ A_i < B_i ≤ 2N
  • 如果TiT_i = 2,则Ai=Bi=0A_i = B_i = 0

来源

  • AtCoder ABC199C