#include <limits.h>
#include <stdio.h>
bool isHeap(int arr[], int i, int n)
{
if (i >= (n - 1) / 2)
return true;
if (arr[i] >= arr[2 * i + 1] &&
arr[i] >= arr[2 * i + 2]
&& isHeap(arr, 2 * i + 1, n)
&& isHeap(arr, 2 * i + 2, n))
return true;
return false;
}
int main()
{
int arr[] = { 90, 15, 10, 7, 12, 2, 7, 3 };
int n = sizeof(arr) / sizeof(int) - 1;
isHeap(arr, 0, n) ? printf("Yes") : printf("No");
return 0;
}
CiNpbmNsdWRlIDxsaW1pdHMuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CgoKYm9vbCBpc0hlYXAoaW50IGFycltdLCBpbnQgaSwgaW50IG4pCnsKCmlmIChpID49IChuIC0gMSkgLyAyKQpyZXR1cm4gdHJ1ZTsKCgppZiAoYXJyW2ldID49IGFyclsyICogaSArIDFdICYmCmFycltpXSA+PSBhcnJbMiAqIGkgKyAyXQomJiBpc0hlYXAoYXJyLCAyICogaSArIDEsIG4pCiYmIGlzSGVhcChhcnIsIDIgKiBpICsgMiwgbikpCnJldHVybiB0cnVlOwoKcmV0dXJuIGZhbHNlOwp9CgoKaW50IG1haW4oKQp7CmludCBhcnJbXSA9IHsgOTAsIDE1LCAxMCwgNywgMTIsIDIsIDcsIDMgfTsKaW50IG4gPSBzaXplb2YoYXJyKSAvIHNpemVvZihpbnQpIC0gMTsKCmlzSGVhcChhcnIsIDAsIG4pID8gcHJpbnRmKCJZZXMiKSA6IHByaW50ZigiTm8iKTsKCnJldHVybiAwOwp9Cg==