AcWing 1640. 堆
原题链接
简单
作者:
leo123456
,
2020-08-31 19:40:23
,
所有人可见
,
阅读 588
//跟着y总不吃亏
#include<iostream>
#include<cstring>
using namespace std;
const int N=1010;
int n;
int h[N];
void dfs(int u)
{
if(u*2<=n) dfs(u*2);
if(u*2+1<=n) dfs(u*2+1);
cout<<h[u];
if(u!=1) cout<<" ";
}
int main()
{
int T;
scanf("%d%d",&T,&n);
while(T--)
{
for(int i=1;i<=n;i++) scanf("%d",&h[i]);
bool lt=false,gt=false;
for(int i=1;i<=n;i++)
for(int j=0;j<2;j++)
if(i*2+j<=n)
{
int a=h[i],b=h[i*2+j];
if(a<b) lt=true;
else gt=true;
}
if(lt&>) cout<<"Not Heap"<<endl;
else if(lt) cout<<"Min Heap"<<endl;
else cout<<"Max Heap"<<endl;
dfs(1);
cout<<endl;
}
return 0;
}