Контест Middle GCD и OperationQueue обновлено
Задача на Swift: OperationQueue с ограничением параллельности
Условие
В OperationQueue с maxConcurrentOperationCount = k в момент 0 добавлены n операций с длительностями d₁..dₙ. Очередь запускает операции строго в порядке добавления, как только освобождается слот.
Выведите момент завершения каждой операции через пробел.
Первая строка: n k (1 ≤ n ≤ 10⁴, 1 ≤ k ≤ 10⁵). Вторая: n длительностей от 0 до 10⁴.
Пример
5 2
3 1 2 4 1
3 1 3 7 4
Как подойти
Min-куча моментов освобождения слотов.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Задача на Swift: операции с зависимостями и критический путь
Следующий вопрос
DispatchQueue.main.sync на главном потоке
Термины по теме
Ещё по теме «GCD и OperationQueue»
- Асинхронная Operation
- Барьер для потокобезопасного кеша
- Инверсия приоритетов
- DispatchSemaphore для ограничения параллельности
- DispatchWorkItem и отмена
- Как дождаться нескольких запросов в GCD
- Инструменты GCD и их задачи
- Синхронный доступ к состоянию без очереди