#P0799. 错放的纸牌

错放的纸牌

题目描述

小可正在整理一叠写着数字的纸牌。

她会按照记录依次操作:

  • 如果记录是一个正整数 xx,表示把编号为 xx 的纸牌放到牌堆最上方;
  • 如果记录是 00,表示发现刚刚最上面的纸牌放错了,需要把牌堆最上方的一张纸牌拿走。

保证每次出现 00 时,牌堆中至少有一张纸牌。

所有操作结束后,小可会从牌堆最上方开始,一张一张取出纸牌并记录编号。

请你输出她最终记录到的纸牌编号顺序。

输入格式

第一行输入一个整数 nn,表示操作次数。

第二行输入 nn 个整数 opiop_i,表示每次操作的记录。

输出格式

如果操作结束后牌堆为空,输出一行:

EMPTY

否则输出一行若干个整数,表示从牌堆最上方到最下方的纸牌编号。相邻两个整数之间用一个空格隔开。

样例输入

8
3 8 0 5 7 0 9 2

样例输出

2 9 5 3

样例解释

操作过程如下:

  • 放入 33,牌堆为:33
  • 放入 88,牌堆为:8,38,3
  • 遇到 00,拿走最上方的 88,牌堆为:33
  • 放入 55,牌堆为:5,35,3
  • 放入 77,牌堆为:7,5,37,5,3
  • 遇到 00,拿走最上方的 77,牌堆为:5,35,3
  • 放入 99,牌堆为:9,5,39,5,3
  • 放入 22,牌堆为:2,9,5,32,9,5,3

所以最终输出 2 9 5 3。

数据范围

对于所有测试数据,满足:

  • 1≤n≤2×1051 \le n \le 2\times10^5
  • 0≤opi≤1090 \le op_i \le 10^9
  • 若 opi=0op_i=0,则表示拿走一张纸牌
  • 若 opi>0op_i>0,则表示放入编号为 opiop_i 的纸牌
  • 保证每次拿走纸牌时,当前牌堆不为空