Algorytmy 1
Kolejka priorytetowa
Twoim zadaniem będzie szybkie wykownywanie następujących operacji na początkowo pustym multizbiorze $A$:
ADD x
– dodaj do multizbioru $A$ pewną liczbę $x$MAX
– odczytaj z multizbioru $A$ największą liczbę, a następnie ją usuń
Wejście
Pierwszy wiersz wejścia zawiera jedną liczbę $n$ oznaczającą liczbę operacji. Kolejne $n$ wierszy zawiera opisy tych operacji. Każdy wiersz najpierw zawiera polecenie ADD
lub MAX
. Jeżeli poleceniem jest ADD
po spacji znajduje się liczba $x$.
Wyjście
Na wyjściu powinno znaleźć się tyle wierszy ile było poleceń MAX
na wejściu. W kolejnych wierszach powinny znaleźć się liczby odczytane w kolejnych wywołaniach MAX
(jeżeli podczas wywołania MAX
multizbiór $A$ jest pusty, zamiast liczby powinien znaleźć się napis BRAK
).
Ograniczenia
- $1 \le n \le 10^6$
- $-10^9 \le x \le 10^9$
Przykłady
Wejście 1
9
ADD 1
ADD 3
ADD 1
MAX
ADD 2
MAX
MAX
MAX
MAX
Wyjście 1
3
2
1
1
BRAK