Ctrl K

Столкновения роботов на рельсе

Сложная
На прямом рельсе стоят n роботов. Робот i находится в точке spots[i], у него запас прочности power[i] и направление heading[i] — 'L' (влево) или 'R' (вправо). Все точки различны, но массивы не обязательно упорядочены по координате. Все роботы одновременно начинают ехать в своём направлении с одинаковой скоростью. Если два робота оказываются в одной точке, они сталкиваются: - робот с меньшим запасом прочности выбывает, а у второго запас уменьшается на 1, и он едет дальше в том же направлении; - если запасы равны, выбывают оба. Когда столкновений больше быть не может, верните запасы прочности уцелевших роботов в том порядке, в каком роботы перечислены во входных данных. Если не уцелел никто, верните пустой список.
Пример 1
spots=[8, 2, 5], power=[4, 6, 3], heading="LRR" → [5]

Робот 0 (точка 8) едет влево и первым встречает робота 2 (точка 5): 4 > 3, робот 2 выбывает, у робота 0 остаётся 3. Затем он встречает робота 1: 6 > 3, робот 0 выбывает, у робота 1 остаётся 5.

Пример 2
spots=[1, 3, 7, 9], power=[5, 5, 2, 8], heading="RLLR" → [2, 8]

Роботы 0 и 1 сталкиваются с равным запасом и выбывают оба. Робот 2 уезжает влево, робот 3 — вправо, им никто не мешает.

Пример 3
spots=[4, 10], power=[7, 9], heading="LR" → [7, 9]

Роботы разъезжаются в разные стороны и никогда не встречаются.

Ограничения
  • 1 ≤ n = len(spots) = len(power) = len(heading) ≤ 10⁵
  • 1 ≤ spots[i], power[i] ≤ 10⁹
  • heading[i] — 'L' или 'R'
  • Все spots[i] различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПартии для сортировки с повторами СложнаяСамая загруженная переговорка СложнаяВторое большее справа СложнаяСервер включён как можно меньше СложнаяЛучшая пара выше планок Сложная
загружаем Python…
Вход
spots=[8, 2, 5], power=[4, 6, 3], heading="LRR"
Ожидается
[5]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 138 тестов на сервере, включая скрытые.