#include<iostream>
#include<stdio.h>
using namespace std;
const int k = 5;
//a min heap, put the a[first] to a fit position
void heapAdjust(int a[], int first, int last)
{
int key = a[first];
for (int i = 2*first; i < last; i = 2*i)
{
if (i+1 < last && a[i+1] < a[i])
i = i + 1;
if (key <= a[i])
break;
else
{
a[first] = a[i];
first = i;
}
}
a[first] = key;
}
//just create a heap, no need to sort it
void createHeap(int a[], int len)
{
int i;
for (i = len/2; i >= 0; i--)
heapAdjust(a, i, len);
}
int main (void)
{
int a[k];
int n, i;
i = 0;
while(scanf("%d",&n) != EOF)
{
if (i < k-1)
{
a[i] = n;
}
else if (i == k-1) //create a heap when input the first k elements
{
a[i] = n;
createHeap(a, k);
}
else if(n > a[0]) //adjust it only when the new iput number n>a[0]
{
a[0] = n;
heapAdjust(a, 0, k);
}
i++;
}
cout<<"output the result:\n";
for (i = 0; i < k; i++)
cout<<a[i]<<" ";
cout<<endl;
}
#include#includeusing namespace std;const int k = 5;void heapAdjust(int a[], int first, int last){ int key = a[first]; for (int i = 2*first; i < last; i = 2*i) { if (i+1 <