Compare the topic of water.
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3+3;
int m, n;
int tree[maxn];
int heap;
vector<int> ans;
void read() {
for (int i = 1; i <= n; ++i) {
scanf("%d", &tree[i]);
}
}
// 判断堆的类型
void judge(int p, int c) {
if ((heap == 1 && tree[p] > tree[c]) || (heap == 2 && tree[p] < tree[c])) {
heap = -1;
} else if (heap == 0) {
heap = tree[p] < tree[c] ? 1 : 2;
}
}
bool down(int i) {
if (i > n) return false;
if (down(2*i)) judge(i, 2*i);
if (down(2*i+1)) judge(i, 2*i+1);
ans.push_back(tree[i]); //对输出格式有要求,那我就先把答案存起来
return true;
}
void solve() {
heap = 0;
ans.clear();
down(1);
if (heap == 1) {
printf("Min Heap\n");
} else if (heap == 2) {
printf("Max Heap\n");
} else {
printf("Not Heap\n");
}
for (int i = 0; i < ans.size(); ++i) {
printf(" %d" + !i, ans[i]);
}
printf("\n");
}
int main() {
scanf("%d%d", &m, &n);
while (m--) {
read();
solve();
}
return 0;
}