题目描述
编写程序判断以下给出的整数序列是否为最小堆。
输入
第一行是元素的个数n; 第二行是n个整数序列。
输出
如果是小根堆,输出Yes,否者输出No。
#include<bits/stdc++.h>
using namespace std;
int g, a[105], n;
int f(){
for(int i = 1; i <= n; i++){
int j = 2 * i;
if(j < n && (a[i]>a[j]||a[i]>a[j+1])) g =1;
}
}
int main(){
cin>>n;
for(int i = 1; i <= n; i++) cin>>a[i];
f();
cout<<((g==1)?"No":"Yes");
return 0;
}