Код Middle GIL, потоки и процессы обновлено

Время работы пула с ограничением параллелизма

Условие

Есть workers рабочих и список длительностей задач. Задачи берутся строго по порядку: каждая следующая задача стартует на первом освободившемся рабочем (как в пуле потоков с очередью). Верните время завершения всех задач. Если задач нет, верните 0.

Примеры

pool_time(2, [3, 1, 1, 2]) // 4
pool_time(1, [1, 2, 3]) // 6
pool_time(3, []) // 0

Как подойти

Подсказки: 1
  1. Куча моментов освобождения рабочих.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.