Черга з пріоритетами
Реалізуйте структуру "черга з пріоритетами", яка підтримує наступні операції:
Додавання елементу в чергу.
Видалення з черги елемента з найбільшим приорітетом.
Зміна приорітета для довільного елемента, який знаходиться у черзі.
Вхідні дані
Програма отримує на вхід послідовність команд, по одній команді у кожному рядку. Загальне число команд не перевищує 30000. Команда може мати один з наступних форматів:
ADD id priority - додати в чергу новый елемент з ідентифікатором id та приорітетом priority. Гарантується, що в черзі немає елемента з таким ідентифікатором.
POP - видалити з черги елемент з найбільшим значенням приорітету. Якщо таких елементів декілька, то видаляється один (довільний) з них. Гарантується, що черга не порожня.
CHANGE id new_priority - змінити значення приорітету елемента з ідентифікатором id на значення new_priority. Гарантується, що в черзі є елемент з таким ідентифікатором.
Ідентифікатори елементів - рядки, які складаються з рядкових латинських букв не більше 10 символів. Ідентифікатори - довільні цілі числа.
На самому початку черга порожня.
Вихідні дані
Для кожної команди типу POP виведіть ідентифікатор видаленого елементу, і, через пропуск, значення його приорітету.