#P0594. 洗碗日

洗碗日

题目描述

今天是你洗碗的日子。妈妈在厨房忙碌着做饭,你负责清洗一大堆脏盘子。洗干净的盘子要按顺序摞在碗碟架上 —— 新洗好的盘子总是放在最上面,毕竟架子空间有限。

“盘子!” 妈妈在灶台前喊了一声,手里还忙着翻炒锅里的菜。你明白她的意思:从碗碟架最上方拿一个干净的盘子递过去。有时候盘子用得快,架子上一个都没有了,这时你就得回一句 “没盘子了!”。

请根据妈妈的操作指令,模拟这一天洗碗递盘子的过程。

输入格式

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

接下来 n 行,每行一个操作,格式为以下五种之一:

  1. push x:你把编号为 xx 的盘子洗好放到了架子上
  2. pop:妈妈要一个盘子,你把架子最上面的盘子递过去
  3. top:你想知道架子最上面是什么盘子
  4. isEmpty:你想知道架子上还有没有盘子
  5. size:你想知道架子上现在有多少个盘子

输出格式

根据操作类型输出相应结果:

  • 对于 push 操作:不输出任何内容。
  • 对于 pop 操作:如果架子不为空,取走最上面的盘子;否则输出 Empty
  • 对于 top 操作:如果架子不为空,输出最上面的盘子编号;否则输出 Empty
  • 对于 isEmpty 操作:如果架子为空输出 Yes,否则输出 No
  • 对于 size 操作:输出架子上的盘子数量。

每个输出占一行。

样例

12
push 101
push 102
top
pop
size
push 103
pop
pop
isEmpty
push 104
pop
pop
102
1
Yes
Empty

样例1解释

操作过程:

  1. 放入盘子 101101
  2. 放入盘子 102102
  3. 查看顶部 → 输出 102102
  4. 取出盘子 → 取出 102102
  5. 查看数量 → 输出 11
  6. 放入盘子 103103
  7. 取出盘子 → 取出 103103
  8. 取出盘子 → 取出 101101
  9. 检查是否为空 → 输出 Yes
  10. 放入盘子 104104
  11. 取出盘子 → 取出 104104
  12. 取出盘子 → 架子为空,输出 Empty

数据范围

对于 100%100\% 的数据,1n1051\le n\le 10^511\le 盘子编号 109\le 10^9