Очередь с приоритетами
Реализуйте структуру "очередь с приоритетами", поддерживающую следующие операции:
Добавление элемента в очередь.
Удаление из очереди элемента с наибольшим приоритетом.
Изменение приоритета для произвольного элемента, находящегося в очереди.
Входные данные
Программа получает на вход последовательность команд, по одной команде в каждой строке. Общее число команд не превосходит 30000. Команда может иметь один из следующих форматов:
ADD id priority - добавить в очередь новый элемент с идентификатором id и приоритетом priority. Гарантируется, что в очереди нет элемента с таким идентификатором.
POP - удалить из очереди элемент с наибольшим значением приоритета. Если таких элементов несколько, то удаляется один (любой) из них. Гарантируется, что очередь не пуста.
CHANGE id new_priority - изменить значение приоритета элемента с идентификатором id на значение new_priority. Гарантируется, что в очереди есть элемент с таким идентификатором.
Идентификаторы элементов - строки, состоящие из строчных латинских букв не более 10 символов. Идентификаторы - произвольные целые числа.
В самом начале очередь пуста.
Выходные данные
Для каждой команды типа POP выведите идентификатор удалённого элемента, и, через пробел, значение его приоритета.