本题的关键点有两处。
首先,任何A与B“弹性碰撞”的后果,都可以虚拟地认为是A和B不受变化地按照原方向、原速率继续前进,只不过A和B的真实身份互换了一下。所以我们只需要计算每个robot按照初始方向前进d之后的位置,得到的新的坐标数组,排序之后就是所有robot的最终坐标。
其次,计算the sum of distances between all the pairs of robots
时,最简单的计数方法就是考察每一段相邻机器人之间的距离s。如果该间隔左边有x个机器人,右边有y个机器人,那么这段s将会被重复计数x*y
次。所以依次考察所有相邻间距即可。