CF1329C.Drazil Likes Heap
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Drazil likes heap very much. So he created a problem with heap:
There is a max heap with a height h implemented on the array. The details of this heap are the following:
This heap contains exactly 2h−1 distinct positive non-zero integers. All integers are distinct. These numbers are stored in the array a indexed from 1 to 2h−1 . For any 1<i<2h , a[i]<a[⌊2i⌋] .
Now we want to reduce the height of this heap such that the height becomes g with exactly 2g−1 numbers in heap. To reduce the height, we should perform the following action 2h−2g times:
Choose an index i , which contains an element and call the following function f in index i :
Note that we suppose that if a[i]=0 , then index i don't contain an element.
After all operations, the remaining 2g−1 element must be located in indices from 1 to 2g−1 . Now Drazil wonders what's the minimum possible sum of the remaining 2g−1 elements. Please find this sum and find a sequence of the function calls to achieve this value.
输入格式
The first line of the input contains an integer t ( 1≤t≤70000 ): the number of test cases.
Each test case contain two lines. The first line contains two integers h and g ( 1≤g<h≤20 ). The second line contains n=2h−1 distinct positive integers a[1],a[2],…,a[n] ( 1≤a[i]<220 ). For all i from 2 to 2h−1 , a[i]<a[⌊2i⌋] .
The total sum of n is less than 220 .
输出格式
For each test case, print two lines.
The first line should contain one integer denoting the minimum sum after reducing the height of heap to g . The second line should contain 2h−2g integers v1,v2,…,v2h−2g . In i -th operation f(vi) should be called.
输入输出样例
输入#1
2 3 2 7 6 3 5 4 2 1 3 2 7 6 5 4 3 2 1
输出#1
10 3 2 3 1 8 2 1 3 1