Ctrl K

Как можно позже, но с местом

Средняя
С остановки уходят автобусы: departures[i] — время отправления i-го. На остановку приходят пассажиры: arrivals[j] — время прихода j-го. Все времена отправления различны, все времена прихода тоже. В каждый автобус помещается seats человек. Массивы не обязательно отсортированы. Пассажиры ждут в очереди по времени прихода. Когда автобус уходит в момент t, в него садятся первые по очереди из тех, кто пришёл не позже t, — пока не кончатся места. Остальные ждут следующего. Вы тоже хотите уехать хоть каким-нибудь автобусом, но прийти как можно позже. Прийти в тот же момент, что и другой пассажир, нельзя. Верните самое позднее подходящее время прихода.
Пример 1
departures=[15, 30], arrivals=[3, 14, 26, 29, 30], seats=2 → 28

В 15 уезжают пассажиры 3 и 14. К 30 ждут 26, 29 и 30, а мест два. Придя в 28, вы окажетесь в очереди вторым — после 26 и раньше 29, — и уедете.

Пример 2
departures=[40, 10], arrivals=[5, 9], seats=3 → 40

Последний автобус уходит в 40 полупустым, к нему можно прийти в момент отправления.

Пример 3
departures=[20], arrivals=[17, 18, 19, 20], seats=2 → 16

Уедут двое первых — 17 и 18. Чтобы попасть в их число, нужно прийти раньше 18; время 17 занято, поэтому ответ 16.

Ограничения
  • 1 ≤ len(departures), len(arrivals), seats ≤ 10⁵
  • 1 ≤ departures[i], arrivals[j] ≤ 10⁹
  • Значения в departures различны, значения в arrivals различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТройки с суммой меньше порога СредняяТепло в каждый домик СредняяПары с заданной разницей СредняяТройки палочек для треугольника Средняяk ближайших значений Средняя
загружаем Python…
Вход
departures=[15, 30], arrivals=[3, 14, 26, 29, 30], seats=2
Ожидается
28

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