#4300. 字符串形成(String Formation)

字符串形成(String Formation)

题目描述

小高有一个由小写英文字母组成的字符串 SS。从这个字符串开始,他将按照以下过程生成一个新的字符串。该过程包含 QQ 个操作。在第 ii 个操作中 (1iQ)( 1 \leq i \leq Q ),会提供一个整数 TiT_{i},具体含义如下:

  • 如果 Ti=1T_{i} = 1:反转字符串 SS
  • 如果 Ti=2T_{i} = 2:额外提供一个整数 FiF_{i} 和一个小写英文字母 CiC_{i}
  • 如果 Fi=1F_{i} = 1:在字符串 SS 的开头添加 CiC_{i}
  • 如果 Fi=2F_{i} = 2:在字符串 SS 的末尾添加 CiC_{i}

请帮助小高找出这个过程最终得到的字符串。

输入格式

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

SS

QQ

Query1Query_1

\vdots

QueryQQuery_Q

在第3行到第(Q+2)(Q+2)行,QueryiQuery_i 是以下之一:

11 表示 Ti=1T_i = 1
以及:22 FiF_i CiC_i 表示 Ti=2T_i = 2

输出格式

输出最终得到的字符串。

样例

a
4
2 1 p
1
2 2 c
1
cpa
a
6
2 2 a
2 1 b
1
2 2 c
1
1
aabc
y
1
2 1 x
xy

样例解释

【 样例说明1】
将有 Q=4Q = 4 个操作。初始时,SSa

  • 操作 11:在 SS 的开头添加 pSS 变成 pa
  • 操作 22:反转 SSSS 变成 ap
  • 操作 33:在 SS 的末尾添加 cSS 变成 apc
  • 操作 44:反转 SSSS 变成 cpa

因此,最终得到的字符串是 cpa
【样例说明2】
将有 Q=6Q = 6 个操作。初始时,SSa

  • 操作 11SS 变成 aa
  • 操作 22SS 变成 baa
  • 操作 33SS 变成 aab
  • 操作 44SS 变成 aabc
  • 操作 55SS 变成 cbaa
  • 操作 66SS 变成 aabc

因此,最终得到的字符串是 aabc
【 数据范围】

  • 1S1051 \leq | S | \leq 10^{5}
  • 1Q2×1051 \leq Q \leq 2 \times 10^{5}

来源

  • AtCoder ABC158D