#P3066. 计算堆栈中的剩余数字(100分)

计算堆栈中的剩余数字(100分)

题目内容

向一个空栈中依次存入正整数,假设入栈元素 n(1<=n<=2311)n(1<=n<=2^{31-1})按顺序依次为 nxn4n3n2n1n_x…n_4、 n_3、n_2、 n_1, 每当元素入栈时,如果 n1=n2++nyn_1=n_2+…+n_y(yy 的范围[2,x][2,x]1<=x<=10001<=x<=1000),则 n1n_1 ~ nyn_y 全部元素出栈,重新入栈新元素 m(m=2n1)m(m=2*n_1)

如:依次向栈存入 66112233, 当存入 661122 时,栈底至栈顶依次为[612][6、 1、 2]

当存入 33 时, 3=2+13=2+13213、 2、 1 全部出栈,重新入栈元素 6(6=23)6(6=2*3),此时栈中有元素 66

因为 6=66=6,所以两个 66 全部出栈,存入 1212,最终栈中只剩一个元素 1212