小慕正在处理一个数据压缩项目,他使用一个空栈来依次压入正整数。每当压入一个整数时,需要执行以下规则(设:,其中 n1 为最新压入的整数): 1. 如果 n1 = n2,则 n1、n2 全部,压入新数据 m(m = 2 * n1)。 2. 如果 (y 的范围为 [3, x]),则 n1、n2、...、ny 全部出栈,压入新数据 m(m = 2 * n1)。 3. 如果上述规则都不满足,则不做操作。 例如:小慕依次向栈压入 6、1、2、3。当压入 2 时,栈顶至栈底依次为 [2, 1, 6];当压入 3 时,3 = 2 + 1,3、2、1 全部出栈,重新入栈整数 6,此时栈顶至栈底依次为 [6, 6];6 = 6,两个 6 全部出栈,压入 12,最终栈中只剩一个元素 12。 小慕向栈中输入一串数字,请输出应用此规则后栈中最终存留的数字。
提示:带虚线的词点一下有通俗解释。
输入描述
使用单个空格隔开的正整数的字符串,如 "5 6 7 8",左边的数字先入栈。 - 正整数大小为 [1, 2^31−1]。 - 正整数个数为 [1,1000]。
输出描述
最终栈中存留的元素值,元素值使用单个空格隔开,如 "8 7 6 5",从左至右依次为栈顶至栈底的数字。
示例
示例 1
输入
10 20 50 80 1 1
输出
2 160
时间限制 1000 ms · 内存限制 128 MB