B. Сколько обменов при спуске
2000 мс · 256 МБ · всё или ничего
То же самое для просеивания вниз: запрос уменьшает на , выведите количество обменов.
Разница с подъёмом в том, что спуск на каждом шаге делает два сравнения, а не одно, - надо выбрать большего из детей. Обменов при этом всё равно по одному на шаг.
Полезно посмотреть на суммарное число обменов по всем запросам и сравнить с : обычно получается заметно меньше. Спуск из случайной позиции короток просто потому, что в куче мало места внизу.
Формат ввода
В первой строке - размер кучи (), во второй - сама куча.
В третьей - число запросов (), далее пар и .
Формат вывода
Для каждого запроса - количество обменов.
После всех запросов - строка с кучей в конечном состоянии.
Примеры
ввод
6 12 6 8 3 4 7 2 2 5 1 2
вывод
1 0 10 4 8 3 1 7
Войдите, чтобы отправлять решения.