Ctrl K

Честно поделить задания

Сложная
Есть список заданий jobs: на i-е уходит jobs[i] единиц времени. Задания нужно раздать workers работникам так, чтобы каждое задание досталось ровно одному из них. Нагрузка работника — суммарное время всех его заданий. Распределите задания так, чтобы самая большая нагрузка среди работников была как можно меньше, и верните её.
Пример 1
jobs=[5, 3, 2, 4], workers=2 → 7

Первому работнику — задания 5 и 2, второму — 3 и 4: оба заняты по 7. Меньше нельзя — всего работы на 14.

Пример 2
jobs=[9, 1, 1], workers=3 → 9

У каждого по одному заданию; самое долгое — 9.

Пример 3
jobs=[6, 6, 6, 6], workers=3 → 12

Четыре задания на троих: кому-то достанутся два, это 12.

Ограничения
  • 1 ≤ workers ≤ len(jobs) ≤ 12
  • 1 ≤ jobs[i] ≤ 10⁷
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКак рассчитаться за меньше переводов СложнаяЦепочки с квадратными суммами СложнаяЛучший набор слов из фишек СложнаяЗаказы из одинаковых деталей СложнаяКвадратная рамка из палочек Средняя
загружаем Python…
Вход
jobs=[5, 3, 2, 4], workers=2
Ожидается
7

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