#P1379. 合并数字

合并数字

题目描述

给定一个栈,初始时栈中为空。有mm次操作,每次操作向栈口压入一个数字。在一次操作之后,如果栈中有两个连续的相同数字xx,则它们会合并成数字x+1x+1。如果仍有,则重复此过程(可以证明同一时刻最多只有一组两个连续的相同数字)。

mm次操作之后栈中的数字自底向上是多少?

输入描述

第一行正整数m(1m105)m(1\le m\le 10^5),表示压入数字的个数。

接下来一行mm个正整数a1,a2...am(1aim)a_1,a_2...a_m(1\le a_i\le m),表示按顺序压入的数字。

输出描述

一行若干个数字,表示最后剩下的数字(自栈底至栈顶)

样例 1

输入

6
1 1 2 3 4 5

输出

6

样例解释

在这个样例中,每次压入的数字都和栈中唯一的数字相间,故会合并成x+1x+1

样例 2

输入

7
1 1 2 2 3 2 1

输出

3 2 3 2 1