AlgoMooc
← 返回题库

K0057. 弹珠魔法对决

中等通过率 38% · 提交 77 · 通过 29
模拟

小慕在自己的魔法实验室里进行了一场弹珠能量测试。每颗弹珠都蕴含着不同的魔力,沿着同一条魔力轨道飞行。弹珠的能量由整数数组 `marbles` 表示: - `marbles[i]` 的代表第 `i` 颗弹珠的能量大小; - 正号表示该弹珠向右飞行,负号表示向左飞行。 所有弹珠以相同的速度移动。 当弹珠迎面相遇发生魔力碰撞时,规则如下: - 如果两颗弹珠发生碰撞,能量较小的那颗会被击碎消失; - 如果两颗弹珠的能量大小相同,则两颗弹珠都会; - 移动方向相同的弹珠永远不会碰撞。 请帮助小慕计算出所有经过激烈碰撞后仍然存在的弹珠,并

提示:带虚线的词点一下有通俗解释。

输入描述

- 第一行输入一个整数 `n` (`1 <= n <= 10^4`),表示弹珠的数量。 - 第二行输入 `n` 个整数,表示数组 `marbles`,其中每个整数的范围为 `-1000 <= marbles[i] <= 1000`,且 `marbles[i] != 0`。

输出描述

- 如果有弹珠剩下,输出一行剩余弹珠的能量值,以空格分隔。 - 如果所有弹珠都湮灭了,则输出一行 `-1`。

示例

示例 1

输入

6
5 10 -5 -10 7 8

输出

5 7 8

示例 2

输入

4
8 -8 5 -5

输出

-1

示例 3

输入

5
10 2 -5 -7 8

输出

10 8

时间限制 1000 ms · 内存限制 128 MB

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

登录后查看题目图解

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

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