塔子哥在玩积木塔游戏。他有一系列的积木块,每块上标有一个正整数。他按照特定的规则堆积这些积木块:每次塔子哥添加一块新的积木时,如果这块积木上的数字与塔顶的积木数字相同,他会取下两块积木,将上面的数字相加后乘以二,然后放回一块新的积木。此外,如果塔顶的积木数字等于下面连续几块积木数字之和,他同样会取下这些积木,进行相同的操作。如果这两个条件都不符合,他就会简单地将新的积木放在塔顶。现在,塔子哥按照一定顺序添加了一系列的积木,请你计算游戏结束后积木塔各块上的数字。
塔子哥在玩积木塔游戏,按照特定规则添加标有正整数的积木块。当他添加新的积木时,如果新积木的数字与塔顶积木的数字相同,他会取下这两块积木,将它们的数字相加后乘以二,然后放回一块新积木;如果塔顶的数字等于下面连续几块积木的和,他也会进行相同操作。若两个条件都不满足,他就将新积木简单放在塔顶。最终,请输出游戏结束后积木塔上从顶到底的数字序列。
这题是一道模拟题,抽象一下题意,每次元素入栈时,判断一下: