Problem4811--X龙珠

4811: X龙珠

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

“X龙珠”是一款益智小游戏。游戏中有 n(2∣n)n(2|n)n(2n) 个编号互不相同龙珠按照给定的顺序排成一个队列,每个龙珠上面都有一个编号。每次操作时,选择并取出龙珠队列中相邻的两个龙珠,放到目标队列的末尾(目标队列最开始是空的,且这两个龙珠的前后顺序不变),然后去除原龙珠队列的空隙。反复多次,直到原龙珠队列为空。可见,因为决策不一样导致目标队列顺序不一样。现在请求出所有方案中、目标队列字典序最大的方案。只需要给出目标队列即可。
例如,当原龙珠队列是 [1,3,2,4] 时,可以先取出 3 和 2,此时目标队列是 [3,2],原龙珠队列是 [1,4];再将剩下两个龙珠放入目标队列,得到目标队列是 [3,2,1,4]。

Input

第一行,一个整数 nnn
接下来一行,每行 nnn 个整数,表示原龙珠队列的编号。

Output

一行,nnn 个整数。

Sample 1 Input

4 
3 1 4 2

Sample 1 Output

4 2 3 1

HINT

【数据规模】
对于 20% 的数据,n≤10n\le10n10
对于 60% 的数据,n≤103n\le10^3n103
对于 100% 的数据,n≤105n\le10^5n105,龙珠编号不超过 n。
【样例2】
输入
6 
6 5 4 1 3 2
输出
6 5 4 1 3 2

Source/Category