Ctrl K

Расписание для четырёхъядерных машин

Средняя
Есть n машин, у каждой по 4 ядра. Машина i освобождается в момент ready_at[i]. Нужно выполнить 4n задач, длительности которых — массив durations. Каждую задачу ставят на отдельное ядро, и каждое ядро берёт ровно одну задачу. Ядра работают параллельно: задача длительности d на машине i завершится в момент ready_at[i] + d. Верните самый ранний момент, к которому могут быть завершены все задачи.
Пример 1
ready_at=[3, 0], durations=[5, 1, 2, 6, 2, 4, 1, 3] → 6

Машине, свободной с момента 0, отдаём задачи 6, 5, 4, 3 — она закончит к 6. Машине с момента 3 — задачи 2, 2, 1, 1, она закончит к 5. Ответ 6.

Пример 2
ready_at=[7], durations=[2, 9, 4, 4] → 16

Машина одна, все четыре задачи на ней: 7 + 9 = 16.

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

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