题目描述
编写程序判断以下给出的整数序列是否为最小堆。
输入
第一行是元素的个数n;
第二行是n个整数序列。
输出
如果是小根堆,输出Yes,否者输出No。
样例输入
10
100 86 48 73 35 39 42 57 66 21
样例输出
No
#include<bits/stdc++.h>
#define ll long long
//#define int ll
#define pii pair<int,int>
#define mem(a,b) memset(a,b,sizeof(a))
#define endl '\n'
#define N 100005
const int inf=0x3f3f3f3f;
const double pi=acos(-1.0);
using namespace std;
//int a[1005][1005];
int a[N],n;
signed main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
{
int j=i*2;
if(j<n&&a[i]<=a[j]&&a[i]<=a[j+1])
{
cout<<"Yes";
return 0;
}
}
cout<<"No";
return 0;
}