[IOI2012] scrivener

题目描述

有些人说李奥纳多是一个对于 Johannes Gutenberg 的崇拜者,Johannes 是一个发明活字印刷的德国铁匠,为了表达尊敬,李奥纳多设计了一台机器被称为小龙虾代书,那是一个非常简单的打字设备。这机器就像一部简单的现代打字机,但只能接受两个指令。一个指令是 输出一个字符,另一个指令是取消最近的指令。小龙虾代书的最大特点就是拥有这个功能强大的取消指令。因为一个取消指令本身也是一个指令,所以也可以被取消。 **说明** 你的任务是作出此小龙虾代书的程序,一开始并无输出任何文字,然后开始接受使用者输入的一连串指令,并可查询目前输出文字中的特定位置的字符。详细说明如下: - `TypeLetter(L)` —附加一个小写字母L在输出文字的最后,$L$ 可以是 $a,b,\cdots, z$。 - `UndoCommands(U)` — 取消之前的 $U$ 个指令,$U$ 是一个正整数。 - `GetLetter(P)` — 回传在输出文字中位置为 $P$ 的字符,$P$ 是一个非负整数。 输出文字中的第一个字符的位置为 $0$。 (这个查询并不是一个指令,因此会被取消指令忽略。) 三种操作可以依照任何顺序被呼叫 $0$ 次或多次以上。 指令 `UndoCommands(U)` 会依照原本执行的相反顺序来取消前面 $U$ 个指令: 如果被取消的指令是 `TypeLetter(L)`,就会从输出文字最后面移除字母 $L$。如果被取消的指令是 `UndoCommands(X)`,那么将会依照原本执行的顺序重新执行之前被取消的 $X$ 个指令。 **范例** 我们列出一连串可能的指令,以及每次执行指令后的输出文字。 | 操作 | 回传 | 输出文字 | | :-----------: | :-----------: | :-----------: | | `TypeLetter(a)` | | `a` | | `TypeLetter(b)` | | `ab` | | `GetLetter(1)` | `b` | `ab` | | `TypeLetter(d)` | | `abd` | | `UndoCommands(2)` | | `a` | | `UndoCommands(1)` | | `abd` | | `GetLetter(2)` | `d` | `abd` | | `TypeLetter(e)`| | `abde` | | `UndoCommands(1)` | | `abd` | | `UndoCommands(5)` | | `ab` | |`TypeLetter(c)` | | `abc` | | `GetLetter(2)` | `c` | `abc` | | `UndoCommands(2)` | | `abd` | | `GetLetter(2)` | `d` | `abd` |

输入输出格式

输入格式


- 第 $1$ 行,一个正整数 $N$,表示操作的个数。 - 第 $2$ 到 $N+1$ 行,每行开始有一个大写字母参数。 1. `T` 表示一个 `TypeLetter` 指令,后面接着一个空白和一个小写字母参数。 2. `U` 表示一个 `UndoCommands` 指令,后面接着一个空白和一个整数参数。 3. `P` 表示一个 `GetLetter` 指令,后面接着一个空白和一个整数参数。

输出格式


对于每项 `GetLetter` 操作,输出一行,一个回传的字符。

输入输出样例

输入样例 #1

10
T c
T z
T u
T a
T i
T h
T f
T z
P 3
P 0

输出样例 #1

a
c

输入样例 #2

98
T u
T g
T p
T h
T w
P 3
P 0
T d
T d
T r
T v
T z
T w
T h
P 0
T d
T v
T b
P 9
T n
T e
P 0
T s
T i
T a
P 6
T b
T n
T m
T t
T m
T g
T y
T g
P 0
T m
P 18
T r
P 17
T w
T w
T o
T m
T m
P 0
T q
P 5
T t
P 27
P 34
T p
T f
T h
T j
T f
T l
P 3
T f
T q
T h
P 17
T w
T d
T p
T z
P 0
T m
P 10
T o
P 5
P 18
P 7
T q
T z
P 2
T u
P 10
T e
P 6
T s
T t
P 24
T s
P 0
T t
T c
P 4
T j
T o
P 5
T i
P 11
T a
T t
P 58
P 51
P 64
P 12

输出样例 #2

h
u
u
z
u
d
u
i
s
u
d
g
m
h
s
u
w
d
i
r
p
w
d
m
u
w
d
h
s
o
a
d

说明

对于 $100\%$ 的数据,$1 \le N \le 10^6$。参数 $U$ 保证不会超过前面已经输入的指令数目,而且参数 $P$ 一定小于输出文字的长度(也就是输出文字的字母数)。