EduBrick

N. Куча с изменением ключа

3000 мс · 256 МБ · всё или ничего

Реализуйте min-кучу, в которой элементы различаются идентификаторами, и поддержите три операции: добавить элемент с данным идентификатором и значением, уменьшить значение данного идентификатора, извлечь минимум.

При равных значениях меньшим считается элемент с меньшим идентификатором - так ответ становится однозначным.

Формат ввода

В первой строке - число запросов qq (1≤q≤2⋅1051 \le q \le 2 \cdot 10^5).

Далее qq строк. Тип «1 id v» - добавить элемент с идентификатором idid (1≤id≤2⋅1051 \le id \le 2 \cdot 10^5) и значением vv (∣v∣≤109|v| \le 10^9); гарантируется, что такого идентификатора в куче нет. Тип «2 id v» - установить значение идентификатора idid равным vv; гарантируется, что он есть и что vv меньше текущего. Тип «3» - извлечь минимум.

Формат вывода

На каждый запрос типа 3 выведите идентификатор и значение извлечённого элемента или −1-1, если куча пуста.

Примеры

ввод
5
1 1 10
1 2 20
2 2 5
3
3
вывод
2 5
1 10
ввод
1
3
вывод
-1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.