/ Vijos / 题库 /

出栈序列[3]

出栈序列[3]

时间限制:1秒  内存限制:256M


【题目描述】

  栈是一种强大的数据结构,它的一种特殊功能是对数组进行排序。例如,借助一个栈,依次将数组1,3,2按顺序入栈或出栈,可对其从大到小排序:1入栈;3入栈;3出栈;2入栈;2出栈;1出栈。 此时的出栈序列是3,2,1,因此实现了对数组的排序。

  遗憾的是,有些时候,仅仅借助一个栈,不能实现对数组的完全排序。例如给定数组 2,1,3,借助一个栈,能获得的字典序最大的出栈序列是 3,1,2:2入栈;1入栈;3入栈;3出栈;1出栈;2出栈。

  请你借助一个栈,对一个给定的数组按照出栈顺序进行从大到小排序。当无法完全排序时,请输出字典序最大的出栈序列。

【输入格式】

  第一行包含一个整数,表示入栈序列长度 \(n\)。
  第二行包含个整数,表示入栈序列。输入数据保证给定的序列是到 \(n\) 的全排列,即不会出现重复数字。

【输出格式】

  仅一行,共个整数,表示你计算出的出栈序列。

【输入输出样例】

 Input

3 
2 1 3 

 Output

3 1 2

【数据限制】

  对于 \(30\%\) 的数据,\(0<n≤1000\)。
  对于 \(60\%\) 的数据,\(0<n≤100000\)。
  对于 \(100\%\) 的数据,\(0<n≤1000000\),元素大小均在 \(2*10^9\) 以内。

【来源】

  Mr.he

信息

ID
2401
难度
9
分类
贪心 | 数据结构 | 点击显示
标签
(无)
递交数
3
已通过
1
通过率
33%
被复制
4
上传者