[ABC158D] String Formation

题意翻译

一开始有一个只包含小写字母的字符串 $S$。 接下来要执行 $Q$ 次操作,对于每次操作,输入一个 $T_i$。 - 如果 $T_i=1$,将 $S$ 翻转。 - 如果 $T_i=2$,再给定一个数 $F_i$ 和一个小写字母 $C_i$。 - 如果 $F_i=1$,将 $C_i$ 加在 $S$ 的开头。 - 如果 $F_i=2$,将 $C_i$ 加在 $S$ 的末尾。 输出所有操作结束后的字符串 $S$。

题目描述

[problemUrl]: https://atcoder.jp/contests/abc158/tasks/abc158_d 高橋君は、英小文字から成る文字列 $ 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 $ $ : $ $ Query_Q $ $ 3 $ 行目から $ Q\ +\ 2 $ 行目の $ Query_i $ は、以下の $ 2 $ つのいずれかである。 > $ 1 $ $ T_i\ =\ 1 $ として操作を行うことを表す。 > $ 2 $ $ F_i $ $ C_i $ $ T_i\ =\ 2 $ として操作を行うことを表す。

输出格式


手順の後に最終的にできる文字列を出力せよ。

输入输出样例

输入样例 #1

a
4
2 1 p
1
2 2 c
1

输出样例 #1

cpa

输入样例 #2

a
6
2 2 a
2 1 b
1
2 2 c
1
1

输出样例 #2

aabc

输入样例 #3

y
1
2 1 x

输出样例 #3

xy

说明

### 制約 - $ 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 $ は英小文字である ### Sample Explanation 1 $ Q\ =\ 4 $ 回の操作を行います。初め $ S $ は `a` です。 - 操作 $ 1 $ : $ S $ の先頭に `p` を追加する。$ S $ は `pa` となる。 - 操作 $ 2 $ : $ S $ の前後を反転する。$ S $ は `ap` となる。 - 操作 $ 3 $ : $ S $ の末尾に `c` を追加する。$ S $ は `apc` となる。 - 操作 $ 4 $ : $ S $ の前後を反転する。$ S $ は `cpa` となる。 よって最終的にできる文字列は `cpa` となります。 ### Sample Explanation 2 $ Q\ =\ 6 $ 回の操作を行います。初め $ S $ は `a` です。 - 操作 $ 1 $ : $ S $ は `aa` となる。 - 操作 $ 2 $ : $ S $ は `baa` となる。 - 操作 $ 3 $ : $ S $ は `aab` となる。 - 操作 $ 4 $ : $ S $ は `aabc` となる。 - 操作 $ 5 $ : $ S $ は `cbaa` となる。 - 操作 $ 6 $ : $ S $ は `aabc` となる。 よって最終的にできる文字列は `aabc` となります。