Ctrl K

Муравьи на бревне

Средняя
По бревну длиной length ползут муравьи, каждый со скоростью 1 единица в секунду. Муравьи из to_left стартуют в указанных точках и ползут влево, муравьи из to_right — вправо. Когда два муравья, ползущие навстречу, сталкиваются, оба мгновенно разворачиваются и ползут дальше. Муравей, достигший конца бревна (точки 0 или length), сразу падает. Верните момент времени, когда с бревна упадёт последний муравей.
Пример 1
length=10, to_left=[3], to_right=[8] → 3

Встреч нет: левый муравей уходит через 3 секунды, правый — через 10 - 8 = 2. Последний падает в момент 3.

Пример 2
length=6, to_left=[4], to_right=[2] → 4

Муравьи встречаются в точке 3 и разворачиваются. Это то же самое, как если бы они прошли сквозь друг друга, так что ответ — max(4, 6 - 2) = 4.

Пример 3
length=5, to_left=[], to_right=[0, 5] → 5
Ограничения
  • 1 ≤ length ≤ 10⁴
  • 0 ≤ to_left[i], to_right[i] ≤ length
  • 1 ≤ len(to_left) + len(to_right) ≤ length + 1
  • Все позиции различны, ни одна не встречается в обоих списках
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяСледующий шаг колонии клеток СредняяЗигзаг по диагоналям СредняяТри в ряд до упора Средняя
загружаем Python…
Вход
length=10, to_left=[3], to_right=[8]
Ожидается
3

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