Задача
Напишите программу, которая будет обрабатывать последовательность запросов таких видов:
CLEAR — сделать пирамиду пустой (если в пирамиде уже были какие-то элементы, удалить все). Действие происходит только с данными в памяти, на экран ничего не выводится.
ADD n — добавить в пирамиду число n. Действие происходит только с данными в памяти, на экран ничего не выводится.
EXTRACT — вынуть из пирамиды максимальное значение. Следует и изменить данные в памяти, и вывести на экран или найденное максимальное значение, или, если пирамида была пустой, слово "CANNOT" (большими буквами).
Входные данные
Во входных данных записано произвольную последовательность запросов CLEAR, ADD и EXTRACT — каждый в отдельной строке, согласно вышеописанному формату. Данные заканчиваются строкой "END!"
Суммарное количество всех запросов не превышает 200000.
Выходные данные
Для каждого запроса типа EXTRACT выведите на стандартный выход (экран) его результат (в отдельной строке).
Ввод |
Вывод |
ADD 192168812
ADD 125
ADD 321
EXTRACT
EXTRACT
CLEAR
ADD 7
ADD 555
EXTRACT
EXTRACT
EXTRACT
END!
|
192168812
321
555
7
CANNOT
|