AlgoMooc
← 返回题库

P5100. 空栈压数

简单通过率 55% · 提交 754 · 通过 411
模拟数学

小慕正在处理一个数据压缩项目,他使用一个空栈来依次压入正整数。每当压入一个整数时,需要执行以下规则(设:,其中 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

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。