EduBrick

H. Сколько было отказов

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

Та же очередь с удалением, что в классе, но выводить надо не ответы на каждый запрос, а сводку: сколько раз очередь отказала на каждом типе запроса, и какая куча получилась.

Отказ - это ответ −1-1: извлечение из пустой очереди, добавление в полную, удаление несуществующего индекса.

Реализовать надо всё то же самое - иначе куча в конце не сойдётся. Меняется только вывод.

Смысл задачи в том, чтобы отделить работу структуры от формата ответа. Если у вас не сходится классная задача, эта покажет, в чём дело: если сводка верна, а индексы нет - ошибка в выводе, а не в куче.

Напоминание: отказ не должен менять кучу. Это ровно то, что здесь и проверяется.

Формат ввода

В первой строке - вместимость NN и число запросов MM (1≤N,M≤1051 \le N, M \le 10^5).

Далее MM строк. Тип 1 - извлечь максимум. Тип 2 - добавить число. Тип 3 - удалить элемент с данным индексом.

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

В первой строке - три числа: количество отказов на запросах типа 1, 2 и 3.

Во второй - куча в конечном состоянии.

Примеры

ввод
4 10
1
2 9
2 4
2 9
2 9
2 7
1
3 4
2 1
3 3
вывод
1 1 1
9 4 1
ввод
1 1
3 1
вывод
0 0 1

Войдите, чтобы отправлять решения.