#P0908. 整理工具箱

整理工具箱

题目描述

训练营收尾时,小可负责整理工具。

现场有一个“使用队列”和一个“临时箱”:

  • 普通工具会直接排到使用队列的队尾;
  • 备用工具会放进临时箱的最上面;
  • 当需要取工具时,如果使用队列为空,就先把临时箱里的工具从上到下依次倒入使用队列;
  • 然后从使用队列的队首取出一件工具使用;
  • 如果两个地方都没有工具,则输出 EMPTY。

现在给出若干条操作,请你输出每次取工具的结果。

输入格式

第一行输入一个整数 q,表示操作数量。

接下来 q 行,每行是一条操作,格式如下:

  • add x t:编号为 x 的工具到达。若 t = 0,它是普通工具;若 t = 1,它是备用工具。
  • use:取出一件工具使用,并输出结果。

输出格式

对于每条 use 操作,输出一行。

如果成功取出工具,输出工具编号;否则输出 EMPTY。

样例

9
add 1 1
add 2 1
use
add 3 0
use
use
use
add 4 1
use
2
1
3
EMPTY
4

样例解释

初始时,“使用队列”和“临时箱”均为空。

add 1 1:1 是备用工具,放入临时箱,此时临时箱中有 [1]。

add 2 1:2 是备用工具,放入临时箱最上面,此时临时箱中有 [2, 1](2 在最上面)。

use:使用队列为空,先将临时箱里的工具从上到下倒入使用队列,得到使用队列 [2, 1];然后从队首取出工具 2。

add 3 0:3 是普通工具,直接排到使用队列队尾,此时使用队列为 [1, 3]。

use:从使用队列队首取出工具 1。

use:从使用队列队首取出工具 3。

use:使用队列和临时箱都已没有工具,输出 EMPTY。

add 4 1:4 是备用工具,放入临时箱,此时临时箱中有 [4]。

use:使用队列为空,将临时箱倒入使用队列得到 [4],从队首取出工具 4。

数据范围

  • 1<=q<=2×1051 <= q <= 2\times10^5
  • 1<=x<=1091 <= x <= 10^9
  • t 只可能是 0 或 1