}
}
void insert(int i)
{
lastindex++;
arr[lastindex] = i;
upheap(lastindex);
}
void size()
{
cout << lastindex << endl;
}
void isEmpty()
{
if (lastindex == 0)
{
cout << "1" << endl;
}
else
{
cout << "0" << endl;
}
}
void downheap(int i)
{
if (2 * i < lastindex)
{
if (arr[2 * i] > arr[2 * i + 1])
{
if (arr[i] < arr[2 * i])
{
int tmp = arr[i];
arr[i] = arr[2 * i];
arr[2 * i] = tmp;
downheap(2 * i);
}
else return;
}
}
else
return;
if(2*i+1 < lastindex)
{
if (arr[i] < arr[2 * i + 1])
{
int tmp = arr[i];
arr[i] = arr[2 * i + 1];
arr[2 * i + 1] = tmp;
downheap(2 * i + 1);
}
else return;
}
else
return;
}
void pop()
{
if (lastindex == 0)
{
cout << "-1" << endl;
return;
}
cout << arr[1] << endl;
arr[1] = arr[lastindex];
lastindex--;
downheap(1);
}
void top()
{
if (lastindex == 0)
{
cout << "-1" << endl;
return;
}
cout << arr[1] << endl;
}
void print()
{
if (lastindex==0)
{
cout << "-1";
}
for (int i = 1; i <= lastindex; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
string k;
cin >> k;
if (k == "isEmpty")
{
h.isEmpty();
}
else if (k == "print")
{
h.print();
}
else if (k == "top")
{
h.top();
}
else if (k == "insert")
{
int i;
cin >> i;
h.insert(i);
}
else if (k == "size")
{
h.size();
}
else if (k == "pop")
{
h.pop();
}
}