На ПВЗ k окон выдачи с номерами от 0 до k − 1. clients[i] = [arrive, service]: клиент i приходит в минуту arrive, выдача ему занимает service минут. Клиенты даны по неубыванию arrive, при равном времени первым считается тот, кто раньше в списке.
Пришедший клиент идёт в свободное окно с наименьшим номером. Если свободных нет, он ждёт в общей очереди; очередь обслуживается по порядку прихода, и первый в ней занимает окно, которое освободилось раньше всех (при равенстве — с меньшим номером). Окно, освободившееся в минуту t, уже свободно для клиента, пришедшего в t.
Верните список: для каждого клиента — минута, когда он закончит.
В работе: Прогноз очереди на ПВЗ Wildberries в час пик: сколько окон открыть, чтобы ожидание не превышало 10 минут.
Пример 1
k = 2 clients = [[0, 5], [1, 3], [2, 4], [4, 1]]
[5, 4, 8, 6]
Окна 0 и 1 заняты до 5 и 4. Третий ждёт и берёт окно 1 в 4, четвёртый — окно 0 в 5.
Пример 2
k = 1 clients = [[0, 2], [10, 1]]
[2, 11]
Второй клиент приходит, когда окно давно свободно.
Ограничения
- 1 ≤
k≤ 1000 - 0 ≤ длина
clients≤ 10⁵ - 0 ≤
arrive≤ 10⁹, 1 ≤service≤ 10⁴ - Лимит — 2 с на тест (2000 мс).
print() и console.log() уходят в консоль.
def queue_finish(k, clients):
Источник: наша задача на данных Wildberries. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.