#include <bits/stdc++.h>
using namespace std;
class heap{
	public:
	int arr[100];
	int size=0;
	void insert(int value){
		size++;
		arr[size]=value;
		int i=size;
		while(i>1){
			int parent=i/2;
			if(arr[parent]<arr[i]){
				swap(arr[parent],arr[i]);
				i=parent;
			}
			else return ;
		}
	}
	
	void print(){
		for(int i=0;i<=size;i++){
			cout<<arr[i]<<" ";
		}
		cout<<endl;
	}
	
	void del(){
		if(size==0){
			cout<<"No elements to delete";
			return ;
		}
		arr[1]=arr[size];
		size--;
		int i=1;
		while(i<size){
			int leftnode=2*i;
			int rightnode=2*i+1;
			if(i<size&&arr[i]<arr[leftnode]){
				swap(arr[i],arr[leftnode]);
				i=leftnode;
				
			}
			else if (i<size&&arr[i]<arr[rightnode]){
				swap(arr[i],arr[rightnode]);
				i=rightnode;
			}
			else
			{
				return;
			}
		}
	}
};
int main() {
	// your code goes here
	heap h;
	h.insert(10);
	h.insert(20);
	h.insert(30);
	h.insert(5);
	h.insert(29);
	h.print();
	h.del();
	h.print();
	
	return 0;
}