EduBrick

B. Сколько обменов при спуске

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

То же самое для просеивания вниз: запрос уменьшает A[i]A[i] на xx, выведите количество обменов.

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

Полезно посмотреть на суммарное число обменов по всем запросам и сравнить с Mlog⁡NM \log N: обычно получается заметно меньше. Спуск из случайной позиции короток просто потому, что в куче мало места внизу.

Формат ввода

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

В третьей - число запросов MM (0≤M≤1050 \le M \le 10^5), далее MM пар ii и xx.

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

Для каждого запроса - количество обменов.

После всех запросов - строка с кучей в конечном состоянии.

Примеры

ввод
6
12 6 8 3 4 7
2
2 5
1 2
вывод
1
0
10 4 8 3 1 7
Войдите, чтобы отправлять решения.