Количество обменов (swaps), выполняемых при Heapify

Дана изначально пустая куча (heap). Требуется обработать q запросов. Запросы бывают двух типов:

  1. add x — добавляет x в кучу

  2. pop — удаляет корень кучи

Для каждого запроса необходимо вывести, сколько обменов пришлось сделать для перестройки кучи и сохранения свойства max-heap.

Обратите внимание, что в операции pop обмен корня с последним элементом также считается за один обмен.

Входные данные

Первая строка содержит одно целое число q (1 ≤ q).

Следующие q строк содержат запросы — по одному в каждой строке. Гарантируется, что при любом запросе add значение x не превосходит по модулю .

Выходные данные

Программа должна вывести количество операций обмена, по одной на строку.

Пример

Входные данные

Выходные данные

7
add 1
add 2
add -3
add 4
pop
add -2
pop

0
1
0
2
2
0
2

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue