给定一个栈,初始时栈中为空。有m次操作,每次操作向栈口压入一个数字。在一次操作之后,如果栈中有两个连续的相同数字x,则它们会合并成数字x+1。如果仍有,则重复此过程(可以证明同一时刻最多只有一组两个连续的相同数字)。问m次操作之后栈中的数字自底向上是多少?
第一行正整数m,接下来一行m个正整数,表示按顺序压入的数字。
1≤m≤105,压入数字为[1,m]中的整数
一行若干个数字,表示最后剩下的数字(自栈底至栈顶)
输入
6
1 1 2 3 4 5
输出
6
说明
在这个样例中,每次压入的数字都和栈中唯一的数字相间,故会合并成x+1
输入
7
1 1 2 2 3 2 1
输出
3 2 3 2 1
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.