Очередь ожидания в колл-центре

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

Сложность
Лёгкая
Языки
Python
JavaScript
TypeScript
Java
Go
Темы
Классы и ООП
Стек, очередь, связные списки

Звонящие ждут ответа оператора в порядке звонков; сначала очередь пуста. Звонящий — положительное число (идентификатор), в очереди идентификаторы не повторяются. Реализуйте операции:

  • call (id): звонящий встаёт в конец очереди; результат — длина очереди после этого;
  • answer: оператор отвечает тому, кто ждёт дольше всех, и он покидает очередь; результат — его id, а для пустой очереди -1;
  • hangup (id): звонящий сам кладёт трубку. Если он был в очереди, он убирается из неё и результат 1; иначе 0;
  • position (id): результат — место звонящего в очереди (первый стоит на месте 1) или 0, если его там нет.

Верните список результатов, по одному на операцию. values[i] — аргументы операции i.

Пример: ["call", "call", "call", "hangup", "position", "answer", "answer", "answer"], [[11], [12], [13], [12], [13], [], [], []] → [1, 2, 3, 1, 2, 11, 13, -1].


Источник: задача CodeShare

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

Ещё задачи

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