Drazil очень любит кучи, поэтому он придумал задачу про кучу:
Есть куча на максимум глубины $$$h$$$, реализованная на массиве. Эта куча устроена следующим образом: куча содержит ровно $$$2^h - 1$$$ различных положительных ненулевых целых чисел. Все целые числа различны. Эти числа содержатся в массиве $$$a$$$, в котором элементы пронумерованы от $$$1$$$ до $$$2^h-1$$$. Для всех $$$1 < i < 2^h$$$, $$$a[i] < a[\left \lfloor{\frac{i}{2}}\right \rfloor]$$$.
Теперь он хочет уменьшить глубину кучи так, чтобы глубина стала $$$g$$$, и куча содержала ровно $$$2^g-1$$$ чисел. Чтобы уменьшить глубину, нужно применить следующую операцию $$$2^h-2^g$$$ раз:
Выбрать индекс $$$i$$$, который содержит элемент, и запустить функцию $$$f$$$ от индекса $$$i$$$:
Обратите внимание, что мы считаем, что если $$$a[i]=0$$$, то индекс $$$i$$$ не содержит элемент.
После всех операций, оставшиеся $$$2^g-1$$$ элементов должны находиться в индексах от $$$1$$$ до $$$2^g-1$$$. Теперь Drazil хочет узнать, какая может быть минимальная сумма оставшихся $$$2^g-1$$$ элементов. Пожалуйста, найдите эту сумму и последовательность вызовов функции, на которой эта сумма достигается.
В первой строке записано одно целое число $$$t$$$ ($$$1 \leq t \leq 70\,000$$$): количество наборов входных данных.
Каждый набор входных данных содержит две строки. В первой строке записаны два целых числа $$$h$$$ и $$$g$$$ ($$$1 \leq g < h \leq 20$$$). Во второй строке записаны $$$n = 2^h-1$$$ различных положительных целых чисел $$$a[1], a[2], \ldots, a[n]$$$ ($$$1 \leq a[i] < 2^{20}$$$). Для всех $$$i$$$ от $$$2$$$ до $$$2^h - 1$$$, $$$a[i] < a[\left \lfloor{\frac{i}{2}}\right \rfloor]$$$.
Сумма по всем $$$n$$$ меньше чем $$$2^{20}$$$.
Для каждого набора входных данных, выведите две строки.
В первой строке вы должны вывести минимальную сумму элементов после уменьшения глубины кучи до $$$g$$$. Вторая строка должна содержать $$$2^h - 2^g$$$ целых чисел $$$v_1, v_2, \ldots, v_{2^h-2^g}$$$. В $$$i$$$-й операции должна быть вызвана $$$f(v_i)$$$.
2 3 2 7 6 3 5 4 2 1 3 2 7 6 5 4 3 2 1
10 3 2 3 1 8 2 1 3 1
Название |
---|