5567: 进阶实验8-2.2:特殊堆栈

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:11 解决:5

题目描述

堆栈是一种经典的后进先出的线性结构,通常有入栈(Push)和出栈(Pop)两个操作。

某人觉得这样不够好玩,就自己模拟了一个栈,并加上了取中值(GetMedia)操作。

即,返回(不取出)栈中所有元素的最中间那个元素。若最中间的元素有两个,则返回更靠前的那个。

输入

输入包括很多行(行 数 ≤ 1 0 5 行数leq10^5105),每行都是一个操作。

  1. 如果操作命令是Push,则后面会紧跟一个空格和数字t ( 0 ≤ t ≤ 1 0 5 ) t(0leq tleq 10^5)t(0t105),表示要把t tt入栈。如:Push 3。

  2. 如果操作命令是Pop,则此行它后面什么都不会出现,表示要出栈一个元素。

  3. 如果操作命令是GetMedia,则此行它后面什么都不会出现,表示要返回栈中最中间的那个数。

数据保证每个操作命令不包含空格,即不会出现操作Get Media等。

输出

符合上述3种描述的输入都是合法输入,但不一定是合法操作。例如在栈空时尝试Pop命令就是非法的。

  1. 如果是Push命令,就把它后面的整数入栈。

  2. 如果是Pop命令,就出栈一个元素并输出

  3. 如果是GetMedia命令,就输出中间的元素。

操作过程中若出现任何非法情况,则这个操作取消并输出What are you Nong Sha Li?。


样例输入 复制

Pop
Push 1
GetMedia
Push 2
GetMedia
Push 3
GetMedia
Pop

样例输出 复制

What are you Nong Sha Li?
1
1
2
3

提示

来源/分类