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$。