Обязательным условием для выполнения задания будет использование структуры данных куча (также известна как пирамида, heap), либо для реализации сортировки heapsort, либо для реализации очереди с приоритетами. Даже если для Вашего решения куча не будет необходима, хотя бы отсортируйте входные данные heapsort'ом.
Также нужны комментарии.