Ctrl K

Роботы собирают монеты

Сложная
На прямой стоят роботы и лежат монеты: robots[i] — позиция i-го робота, coins[j] — позиция j-й монеты. В одной точке может находиться несколько роботов и монет. За одну секунду робот сдвигается на 1 влево или вправо; все роботы двигаются одновременно и независимо. Робот подбирает монету мгновенно, как только оказывается в её точке, и может собрать сколько угодно монет. Верните наименьшее число секунд, за которое роботы могут собрать все монеты.
Пример 1
robots=[2, 8], coins=[0, 5, 9] → 5

Первый робот едет влево до 0 (2 секунды). Второй сначала едет вправо до 9 (1 секунда), потом обратно до 5 (ещё 4) — всего 5 секунд. Если бы монету 5 забирал первый робот, ему понадобилось бы 2 + 5 = 7. Ответ 5.

Пример 2
robots=[4, 4, 10], coins=[4, 10] → 0

Монеты уже лежат под роботами — ехать никуда не нужно.

Пример 3
robots=[0], coins=[3, 7] → 7

Единственный робот едет вправо и по пути подбирает обе монеты: 7 секунд.

Ограничения
  • 1 ≤ len(robots), len(coins) ≤ 2·10⁴
  • 0 ≤ robots[i], coins[j] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиK-я по величине разница в паре СложнаяЗагруженные пары серверов СложнаяКрасота клумб на бюджете СложнаяТройки с суммой меньше порога СредняяЗначения в обоих списках Лёгкая
загружаем Python…
Вход
robots=[2, 8], coins=[0, 5, 9]
Ожидается
5

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