Ctrl K

Строители-клоны

Сложная
Нужно выполнить набор работ: jobs[i] — сколько единиц времени занимает i-я работа. Каждую работу целиком делает один строитель, и после неё он уходит домой. В начале строитель один. Любой свободный строитель может вместо работы клонироваться: через clone_cost единиц времени вместо одного строителя становится два. Несколько строителей могут клонироваться одновременно, и это занимает те же clone_cost. Верните наименьшее время, к которому все работы могут быть закончены.
Пример 1
jobs=[6], clone_cost=3 → 6

Строитель один и работа одна — клонироваться незачем, 6 единиц времени.

Пример 2
jobs=[2, 9, 4], clone_cost=2 → 11

Клонируемся (2): один строитель берёт работу 9 и закончит к 11. Второй снова клонируется (к 4) и двое делают 2 и 4, закончив к 8. Итого 11.

Пример 3
jobs=[1, 1, 1, 1], clone_cost=5 → 11

Нужно четыре строителя: два раунда клонирования по 5, затем 1 на работу — всего 11.

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

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