AT_abc158_d [ABC158D] String Formation

题目描述

高桥君有一个由小写英文字母组成的字符串 $S$。 他决定从这个 $S$ 开始,按照给定的操作步骤来构造字符串。 操作步骤共包含 $Q$ 次操作。第 $i$ 次操作($1 \leq i \leq Q$)首先会给出一个整数 $T_i$。 - 当 $T_i = 1$ 时:将字符串 $S$ 的前后顺序反转。 - 当 $T_i = 2$ 时:还会额外给出一个整数 $F_i$ 和一个小写英文字母 $C_i$。 - 当 $F_i = 1$ 时:在字符串 $S$ 的开头添加 $C_i$。 - 当 $F_i = 2$ 时:在字符串 $S$ 的末尾添加 $C_i$。 请你帮高桥君求出经过所有操作后最终得到的字符串。

输入格式

输入按以下格式从标准输入读入。 > $S$ > $Q$ > $Query_1$ > $\vdots$ > $Query_Q$ 第 $3$ 行到第 $Q+2$ 行的 $Query_i$,有以下两种形式之一: > $1$ 表示进行 $T_i = 1$ 的操作。 > $2\ F_i\ C_i$ 表示进行 $T_i = 2$ 的操作。

输出格式

请输出经过所有操作后最终得到的字符串。

说明/提示

## 限制条件 - $1 \leq |S| \leq 10^5$ - $S$ 由小写英文字母组成 - $1 \leq Q \leq 2 \times 10^5$ - $T_i = 1$ 或 $2$ - $F_i = 1$ 或 $2$ - $C_i$ 是小写英文字母 ## 样例解释 1 共进行 $Q = 4$ 次操作。初始 $S$ 为 `a`。 - 操作 1:在 $S$ 的开头添加 `p`,$S$ 变为 `pa`。 - 操作 2:将 $S$ 前后反转,$S$ 变为 `ap`。 - 操作 3:在 $S$ 的末尾添加 `c`,$S$ 变为 `apc`。 - 操作 4:将 $S$ 前后反转,$S$ 变为 `cpa`。 因此最终得到的字符串为 `cpa`。 ## 样例解释 2 共进行 $Q = 6$ 次操作。初始 $S$ 为 `a`。 - 操作 1:$S$ 变为 `aa`。 - 操作 2:$S$ 变为 `baa`。 - 操作 3:$S$ 变为 `aab`。 - 操作 4:$S$ 变为 `aabc`。 - 操作 5:$S$ 变为 `cbaa`。 - 操作 6:$S$ 变为 `aabc`。 因此最终得到的字符串为 `aabc`。 由 ChatGPT 4.1 翻译