void enqueueToMaxHeap(int k) : Max heap에 k를 입력
int dequeueFromMaxHeap(void) : Max heap으로 부터 root를 추출
void printTopThree(void) : Max heap의 root, root의 left, root의 right 값을, 공백 1개로 분리하여 출력. 끝에 줄바꿈 문자없음. 값이 없는 경우, -999를 출력. 예를 들어, 비어있는 max heap의 경우 -999 -999 -999를 출력.
Max Heap에 저장될 수 있는 숫자들은 최대 20개임.
위 3개 함수를 구현하여, 아래 main함수와 함께 동작시키시오.
헤더 파일 (header) 포함, 전역변수들과 구조체 선언은 자유롭게 할 수 있음.
다만, 아래 main함수를 수정해서는 안된다. 수정하여 통과하는 경우, 부정행위 처리됨.
int main(void) {
int k;
while (1) {
scanf("%d", &k);
if (k == -1) {
break;
}
enqueueToMaxHeap(k);
}
while (1) {
scanf("%d", &k);
if (k == -1) {
break;
}
dequeueFromMaxHeap();
}
printTopThree();
return 0;
}