#include <bits/stdc++.h>
using namespace std;
void SelectSort(int a[],int n)
{
for(int i=0;i<n-1;i++){
int min_pos=i;
for(int j=i;j<n;j++){
(a[j]<a[i]) ? min_pos= j : min_pos=min_pos;
}
swap(a[min_pos],a[i]);
}
}
void show_elem(int a[],int n){
for(int i=0;i<n;i++)
cout<<a[i]<<' ';
cout<<endl;
}
void heapc(int a[],int i,int n)
{
int j=2*i,k=2*i+1;
if (j<n and a[j]>a[i]){
swap(a[j],a[i]);
heapc(a,j,n);
}
if (k<n and a[k]>a[i]){
swap(a[k],a[i]);
heapc(a,k,n);
}
return ;
}
void heapify(int a[],int n){
for(int i=n/2;i>0;i--){
heapc(a,i,n);
}
}
void heapsort(int a[],int n)
{
n--;
while(n){
swap(a[1],a[n]);
heapc(a,1,n);
n--;
}
}
void heappush(int val,int a[],int *l){
int n=(*l);
a[++n]=val;
int j=n,i=n/2;
while(j!=1){
if (a[i] < a[j]) {
swap(a[i],a[j]);
j=i,i=i/2;
}
else break;
}
*l=n;
}
int main()
{
int a[20]={-65536,53,17,78,9,45,65,87,32};
int n=9;
heapify(a,n);
show_elem(a,n);
heappush(63,a,&n);
show_elem(a,n) ;
}