Angenommen, wir starten mit einem anfangs leeren Heap. Es sollen q Abfragen ausgeführt werden. Es gibt drei Arten von Abfragen:
add x – fügt x in den Heap ein
pop – entfernt das Wurzelelement (root) aus dem Heap
max – gibt das größte Element im Heap aus
Eingabe
Die erste Zeile der Eingabe enthält eine einzelne Ganzzahl q (1 ≤ q ≤ 10^5).
Die folgenden q Zeilen beschreiben die einzelnen Abfragen – jede Abfrage steht in einer eigenen Zeile. Es ist sichergestellt, dass bei allen add-Abfragen der Wert x den Betrag nicht überschreitet. Außerdem ist garantiert, dass alle Operationen gültig sind und keine pop-Operation auf einem leeren Heap ausgeführt wird.
Ausgabe
Das Programm soll die entsprechenden Werte für alle max-Abfragen jeweils in einer neuen Zeile ausgeben.