[Home|Training|Problems|Contests|C Language] | [Login|Register] |
Problems Status Rank Statistics |
Problem E
Stack
Time Limit: 1000ms
Memory Limit: 65536kb Description
我们都知道栈支持push和pop操作,push操作表示在栈顶增添一个元素,pop操作表示将栈顶元素删除。现在假设初始状态存在一个空栈,我们通过push和pop操作动态地改变这个栈的状态,现在的问题是,你能很快找出目前栈中的最小的元素吗?当然,如果栈中元素个数小于1,你将不能找到最小的元素。如果栈为空栈,你不能进行pop操作。
Input
多组输入,以0作为输入结束。针对每组输入:首先输入一个正整数N(1<=N<=200000),下面有N行,每行输入格式可能有如下三种: pop push x(x代表一个正整数元素,其值不大于1000) find Output
针对每次输入的find,输出相应的最小元素,如果不存在,输出-1。当然如果有不合理的pop操作,输出“You Can't Do Pop Operation !”处理完一组数据后,输出空行后再处理下一组数据。
Sample Input
9 pop push 6 push 5 push 4 find pop find push 2 find 6 pop find push 3 push 5 push 2 find 0 Sample Output
You Can't Do Pop Operation ! 4 5 2 You Can't Do Pop Operation ! -1 2 |