Ctrl K

Каждому курьеру по заказу

Средняя
Есть n заказов и n курьеров. Заказ i требует jobs[i] часов работы, а курьер j может работать hours[j] часов в день. Каждый заказ нужно отдать ровно одному курьеру, и каждый курьер получает ровно один заказ. Курьер работает над своим заказом каждый день, пока не закончит, а все курьеры работают параллельно. Верните наименьшее число дней, за которое при удачном распределении будут выполнены все заказы.
Пример 1
jobs=[10, 3, 8], hours=[2, 4, 3] → 3

Работу 10 отдаём курьеру с 4 часами (3 дня), работу 8 — курьеру с 3 часами (3 дня), работу 3 — курьеру с 2 часами (2 дня). Все закончат за 3 дня, быстрее не выйдет: работа 10 даже у самого быстрого займёт 3 дня.

Пример 2
jobs=[6, 6], hours=[6, 1] → 6

Одному из курьеров неизбежно достанется работа на 6 часов при 1 часе в день — это 6 дней.

Пример 3
jobs=[1], hours=[100] → 1
Ограничения
  • 1 ≤ n = len(jobs) = len(hours) ≤ 10⁵
  • 1 ≤ jobs[i], hours[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяСтудии для записи СредняяНизко — высоко — низко СредняяСтрого низко — высоко СредняяОтменить как можно меньше встреч Средняя
загружаем Python…
Вход
jobs=[10, 3, 8], hours=[2, 4, 3]
Ожидается
3

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