某个机器人领域的实验室正在进行一项有趣的研究。他们在一条直线上放置了 n 个机器人,并让它们以相同的速度沿着给定的方向移动。每个机器人都有一个位置、能量值和移动方向。
所有机器人以相同速度,同时沿给定方向在路线上移动。如果两个机器人移动到相同位置,则会发生碰撞。
然而,由于机器人们的移动路径交叉,往左 (L) 或往右 (R) 移动,它们可能会发生碰撞。一旦两个机器人在相同的位置相遇,它们就会发生碰撞。
在碰撞过程中,能量值较低的机器人将被移除,并且另一个机器人的能量值会减少1,并沿与之前相同的方向继续移动。如果两个机器人的能量值相同,它们都将被移除。
实验室希望你能帮助他们确定经过所有碰撞后,仍然存活的机器人的能量值,并按照原始编号的顺序排列,如果没有机器人存活,则输出 -1。
n 表示机器人个数。
第二行输入 n 个整数,表示每一个机器人的位置 positions[i]。
第三行输入 n 个整数,表示每一个机器人的的能量值 pow[i]。
第四行输入 n 个字符,表示每一个机器人移动的方向。
剩余的每一个机器人的能量值,如果没有机器人存在了,则输出 -1。
5 5 4 3 2 1 2 17 9 15 10 RRRRR
2 17 9 15 10
4 3 5 2 6 10 10 15 12 RLRL
14
4 1 2 5 6 10 10 11 11 RLRL
-1

位置:5 4 3 2 1
能量值:2 17 9 15 10
移动方向:RRRRR
机器人们以相同的速度向右移动。
它们不会导致碰撞,所以,能量值并不会改变。
因此,剩余的机器人能量值输出为 2 17 9 15 10。

位置:3 5 2 6
能量值:10 10 15 12
移动方向:RLRL
机器人们以相同的速度移动,直到发生碰撞。
机器人1和机器人2在位置 4 发生碰撞,两个机器人能量值相同,因此碰撞后都被移走。机器人3和机器人4再次碰撞,机器人4被移走,机器人3的能量值减 1,能量值变为 14。
最终剩余的机器人能量值为 14。
因此,输出为 14。

位置:1 2 5 6
能量值:10 10 11 11
移动方向:RLRL
机器人们以相同的速度移动,直到发生碰撞。
机器人 1 和机器人 2 将会碰撞,因为二者能量值相同,二者都将被从路线中移除。
同理,机器人 3 和机器人 4 将会碰撞,同样被移除。
最终没有机器人存活,因此输出为 -1。
机器人的移动方向,只可能是 L 或者 R 。
30\% 的数据满足:1 \le n \le 10,1 \le positions[i] \le 10^2,1 \le pow[i] \le 10^2 。
60\% 的数据满足:1 \le n \le 10^2,1 \le positions[i] \le 10^6,1 \le pow[i] \le 10^6 。
100\% 的数据满足:1 \le n \le 3\times10^4,1 \le positions[i] \le 10^9,1 \le pow[i] \le 10^9 。
注意:位置 positions 可能是乱序的,每个机器人的初始位置互不相同。测试数据确保无论怎样碰撞,没有被移除的机器人的能量值始终是非负整数。
东方博宜OJ