N. Куча с увеличением ключа
Как классная задача про кучу с идентификаторами, но операция обратная: значение идентификатора увеличивается, и куча по-прежнему на минимум.
Разница в одной строке: значение выросло, значит элемент может только опуститься - нужно просеивание вниз из позиции .
Массив позиций обновляется так же - при каждом обмене, без исключений.
Стоит проделать обе задачи именно потому, что направление просеивания определяется не операцией, а сочетанием направления изменения и типа кучи. В min-куче увеличение ключа гонит элемент вниз, в max-куче - вверх. Держать это в голове по правилу «увеличение - значит вверх» - верный способ ошибиться.
При равных значениях меньшим считается элемент с меньшим идентификатором.
Формат ввода
В первой строке - число запросов ().
Далее строк. «1 id v» - добавить элемент; такого идентификатора в куче нет. «2 id v» - установить значение идентификатора равным ; он есть, и больше текущего. «3» - извлечь минимум.
Формат вывода
На каждый запрос типа 3 - идентификатор и значение извлечённого элемента или , если куча пуста.
Примеры
5 1 1 10 1 2 20 2 1 30 3 3
2 20 1 30
1 3
-1