U559254 [250503] stack
题目描述
栈是一种后进先出的线性数据结构,如果你没有学习过这一数据结构,可以参考 [OI Wiki 上的介绍](https://oi-wiki.org/ds/stack/)。
有一个栈,初始时为空,你需要支持三种操作:
- $1\ x\ c$:重复向栈中加入 $c$ 次整数元素 $x$。
- $2\ c$:弹出栈中的 $c$ 个元素,特别地,若当前栈中元素数量小于 $c$,则不执行此次操作。
- $3$:查询当前栈顶元素,特别地,若当前栈为空,则输出 `empty`。
输入格式
第一行包含一个整数 $q$,表示操作次数。
接下来 $q$ 行,每行一个操作,格式见题目描述。
输出格式
对于每次查询操作,输出一行一个整数,表示当前栈顶元素,特别地,若栈顶为空,则输出 `empty`。
说明/提示
#### 样例 1 解释
下文中描述栈中元素均以从栈底到栈顶的顺序。
样例操作流程如下:
- `3`:当前栈为空,输出 `empty`。
- `1 2 2`:向栈中重复加入 $2$ 次元素 $2$,操作后栈中元素为 $[2,2]$。
- `1 3 2`:向栈中重复加入 $2$ 次元素 $3$,操作后栈中元素为 $[2,2,3,3]$。
- `3`:当前栈顶元素为 $3$。
- `2 3`:从栈顶弹出 $3$ 个元素,操作后栈中元素为 $[2]$。
- `3`:当前栈顶元素为 $2$。
- `2 2`:当前栈中元素数量小于 $2$,不执行当前操作。栈中元素为 $[2]$.
- `3`:当前栈顶元素为 $2$。
#### 数据范围
对于所有测试数据,保证:$1\le q\le 10^6$,$0\le x\le 10^9$,$1\le c\le 10^9$。
| 测试点 | $q\le$ | 特殊性质 |
| :--------: | :----: | :------: |
| $1\sim 3$ | $1000$ | 无 |
| $4\sim 6$ | $10^5$ | A |
| $7\sim 10$ | $10^6$ | 无 |
特殊性质 A:所有操作中 $c$ 的总和不超过 $2\times 10^6$。