Контест Middle Контейнеры STL изнутри обновлено

Планировщик задач на priority_queue

Условие

Планировщик получает задачи с приоритетами и по команде run запускает задачу с наибольшим приоритетом, а среди равных ту, что была добавлена раньше. Команды:

  • add name p: добавить задачу name с приоритетом p;
  • run: вывести имя запускаемой задачи и убрать её, или idle, если задач нет.

Ввод: q (1 ≤ q ≤ 3000), затем q команд. 1 ≤ p ≤ 10⁹, имена уникальные, до 10 символов.

Вывод: ответ на каждую run.

Пример 1

Ввод:

6
add a 1
add b 5
add c 5
run
run
run

Вывод:

b
c
a

Пример 2

Ввод:

2
run
add x 1

Вывод:

idle

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.