#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int check_heap(int a[], int n);
void insert(int val, int a[], int *n);
int deletemin(int a[],int *n);
 
int main(void) {
  int a[12] = {1,13,71,14,15,80,91,24,60,63};
  int n;
  int i;
  int b,c;

  srandom(time(NULL));
  
  b = random() % 100 + 1;
  n = 10;
  insert(b, a, &n);
  n = 11;
  c = random() % 100 + 1;
  insert(c, a, &n);
 
  printf("%d\n", check_heap(a, 12));

  deletemin(a, &n);
 

  return 0;
}
 
int check_heap(int a[], int n) {
  int i;
  int m;
  m = (n - 1) / 2;
  for(i = 0; i < m; i++)
    {
      if(a[i] >= a[i * 2 + 1])
	{
	  return 0;
	}
      if(a[i] >= a[i * 2 + 2]){
	return 0;
      }
    }
 

  if(n % 2 == 0){

    if(a[(n - 1)/2] > a[n - 1]){

      return 0;
    }
  }
  return 1;

}
 
void insert(int val, int a[], int *n) {

  int temp;
  int i;

  a[*n] = val;
  i = *n;

  while( 0 < i){
     
    if(a[(i-1)/2] <= a[i])
      {
	break;
      }

    temp =  a[(i-1) / 2];
    a[(i-1) / 2] = a[i];
    a[i] =  temp;
    i = (i - 1)/2;
 

  }

}
 
int deletemin(int a[],int *n){

  int b;
  int i,j,k;

  b = a[0];


  return b;
}
 