#include<stdio.h>
#include<stdlib.h>

void insert(int i, int a[], int n);
int deletemin(int a[], int n, int m);

int main(void) {
	int a[10] = {91, 63, 71, 14, 60, 1, 24, 13, 80, 15};
	int m[10];
	int i, j;
	int n = 10;

	for (i = (n - 2) / 2; i >= 0; i--) {
		insert(i, a, n - 1);
	}

	for (i = n - 1; i >= 0; i--) {
		m[9 - i] = deletemin(a, i, i - 1);
	}

	for (j = 0; j < 10; j++) {
		printf("%3d", m[j]);
	}

	return 0;
}

void insert(int i, int a[], int n) {
	int j;
	int temp;

	while (2 * i + 1 <= n) {
		j = 2 * i + 1;

		if (j < n) {
			if (a[j] > a[j + 1]) {
				j++;
			}
		}

		if (a[i] <= a[j]) {
			break;
		}

		temp = a[j];
		a[j] = a[i];
		a[i] = temp;

		i = j;
	}
}

int deletemin(int a[], int n, int m) {
	int b;
	int temp;
	int i, j;

	b = a[0];
	a[0] = a[n];
	i = 0;

	while (2 * i + 1 <= m) {
		j = 2 * i + 1;

		if (j < m) {
			if (a[j] > a[j + 1]) {
				j++;
			}
		}

		if (a[i] <= a[j]) {
			break;
		}

		temp = a[i];
		a[i] = a[j];
		a[j] = temp;

		i = j;
	}

	return b;
}