#DS0003. 出栈序列判断
出栈序列判断
题目描述
现在有一个栈,有 个元素,分别为 。我们可以通过 push
和 pop
操作,将这 个元素依次放入栈中,然后从栈中弹出,依次把出栈的元素写下来得到的序列就是出栈序列。
比如 ,如果执行 push 1, push 2, pop, push 3, pop, pop
,那么我们 pop
操作得到的元素依次是 。也就是说出栈序列就是 。
现在给定一个合法的出栈序列,请输出一个合法的由 push
和 pop
操作构成的操作序列。这里要求 push
操作一定是按 的顺序。
输入格式
第一行一个整数 。接下来一行 个整数,表示出栈序列。
输出格式
输出 行,每行一个 push
或 pop
操作,可以证明一个出栈序列对应的操作序列是唯一的。
3
2 3 1
push 1
push 2
pop
push 3
pop
pop
5
1 3 5 4 2
push 1
pop
push 2
push 3
pop
push 4
push 5
pop
pop
pop
数据规模
对于 100%的数据,保证 ,输入一定是个合法的出栈序列。