I. K-е наименьшее в потоке
2000 мс · 256 МБ · всё или ничего
Числа приходят по одному. После каждого выведите -е наименьшее среди уже пришедших или , если чисел меньше .
Зеркало классной задачи: держим наименьших в max-куче, её корень и есть ответ. Пришло число меньше корня - выбрасываем корень и добавляем новое.
Правило простое и стоит его запомнить: чтобы держать наименьших, нужна куча максимумов; чтобы держать наибольших - куча минимумов. Куча всегда «смотрит» на худшего из хранимых, потому что именно его предстоит вытеснить.
Одинаковые числа считаются разными элементами.
Формат ввода
В первой строке - числа и ().
Во второй - целых чисел, по модулю не превосходящих .
Формат вывода
Выведите чисел - ответ после каждого пришедшего числа.
Примеры
ввод
5 2 5 4 3 2 1
вывод
-1 5 4 3 2
ввод
2 2 5 5
вывод
-1 5
Войдите, чтобы отправлять решения.