Очередь к барберам

Задача по программированию с проверкой онлайн

Сложность
Средняя
Языки
Python
JavaScript
TypeScript
Java
Go
Темы
Поиск и сортировка
Математика

В парикмахерской работают барберы, нумерованные с 1; барбер k стрижёт одного клиента ровно barber_minutes[k − 1] минут. Барбер, закончив, сразу свободен. Клиент из головы очереди идёт к свободному барберу с наименьшим номером, а если свободных нет, ждёт, пока кто-то освободится (если освободились сразу несколько, выбирает наименьший номер). Парикмахерская только открылась, все барберы свободны. Вы стоите в очереди на месте place (первый клиент — место 1). Верните номер барбера, который вас пострижёт.

Ограничения: place до 10^9, длительности до 10^5.

Пример: [10, 5], 4 → 1 (барбер 1 занят до минуты 10, барбер 2 освободится на минуте 5 и возьмёт третьего клиента, а на минуте 10 свободны оба).


Источник: Coding Competitions Archive, codejam/2015/round_1a/haircut · © Google LLC · Apache-2.0 · условие переведено и дополнено

Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).

Ещё задачи

Все задачи для тренировки