Контест Middle Многопоточность и модель памяти обновлено
Пул потоков: кто и когда выполнит задачу
Условие
Пул из k рабочих потоков (номера 1..k) получает n задач сразу в момент 0 в указанном порядке, у задачи i длительность tᵢ. Очередная задача из очереди достаётся потоку, который освободится раньше всех; если таких несколько, потоку с меньшим номером. Изначально все потоки свободны с момента 0.
Для каждой задачи выведите номер потока и момент начала, а последней строкой момент, когда все задачи будут выполнены.
Ввод: n и k (1 ≤ n, k ≤ 2000), затем n длительностей (0 ≤ tᵢ ≤ 10⁹).
Вывод: n строк поток начало, затем время окончания.
Пример 1
Ввод:
5 2
3 1 2 0 4
Вывод:
1 0
2 0
2 1
1 3
1 3
7
Пример 2
Ввод:
3 5
7 7 7
Вывод:
1 0
2 0
3 0
7
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.