AT_joi2022_yo2_a 図書館 2 (Library 2)
题目描述
喜欢读书的比太郎决定在图书馆借书阅读。由于比太郎的家很小,地板上只能放下一本书的空间。不过高度足够,因此比太郎决定把书一本一本地堆叠起来管理。
比太郎接下来会进行 $Q$ 次操作。第 $i$ 次($1 \leq i \leq Q$)操作由字符串 $S_i$ 表示。$S_i$ 要么是由小写英文字母组成的字符串,要么是 `READ`,其含义如下:
- 如果 $S_i$ 是由小写英文字母组成的字符串,则比太郎会从图书馆借一本书名为 $S_i$ 的书,并将其堆放在最上面。
- 如果 $S_i$ 为 `READ`,则比太郎会阅读堆叠空间最上面的一本书,并将其归还给图书馆。
请你输出比太郎按照阅读顺序读过的书名。
给定 $Q$ 次操作的内容,请编写程序,按比太郎阅读书籍的顺序输出他读过的书名。
输入格式
输入以以下格式从标准输入给出。
> $Q$
> $S_1$
> $S_2$
> $\vdots$
> $S_Q$
输出格式
对于每一次 $S_i$ 为 `READ` 的操作,按顺序每行输出比太郎读过的书名。
说明/提示
## 限制条件
- $2 \leq Q \leq 200\,000$。
- $Q$ 是整数。
- $S_i$ 是长度在 $1$ 到 $10$ 之间的字符串($1 \leq i \leq Q$)。
- $S_i$ 要么是由小写英文字母组成的字符串,要么是 `READ`($1 \leq i \leq Q$)。
- 至少存在一个 $i$ 使得 $S_i$ 为 `READ`。
- 当 $S_i$ 为 `READ` 时,堆叠空间中一定至少有一本书($1 \leq i \leq Q$)。
## 子任务
1.(40 分)$Q \leq 2\,000$。
2.(60 分)无额外限制。
## 评测说明
所有提交将在评测系统上进行评分。
提交的源代码在对应子任务的所有测试数据上均输出正确结果时,该子任务判为正确。
每次提交的得分为所有判为正确的子任务分数之和。
本题的得分为**所有提交中得分的最大值**。
当前得分可在“提交结果”标签页的“我的得分情况”中查看。
## 样例解释 1
在此输入样例中,比太郎的操作如下:
1. 将书名为 `joi` 的书堆放到空间中。此时,空间中的书名为 `joi`。
2. 将书名为 `joig` 的书堆放到空间中。此时,空间中的书名从上到下依次为 `joig`、`joi`。
3. 将书名为 `ioi` 的书堆放到空间中。此时,空间中的书名从上到下依次为 `ioi`、`joig`、`joi`。
4. 读并归还最上面的 `ioi`。此时,空间中的书名从上到下依次为 `joig`、`joi`。
5. 将书名为 `egoi` 的书堆放到空间中。此时,空间中的书名从上到下依次为 `egoi`、`joig`、`joi`。
6. 读并归还最上面的 `egoi`。此时,空间中的书名从上到下依次为 `joig`、`joi`。
7. 读并归还最上面的 `joig`。此时,空间中的书名为 `joi`。
因此,比太郎读过的书名依次为 `ioi`、`egoi`、`joig`,每行输出一个。
该输入样例满足所有子任务的限制条件。
## 样例解释 2
该输入样例满足所有子任务的限制条件。
由 ChatGPT 4.1 翻译