Контест Middle Протоколы, POP и дженерики обновлено

Задача на Swift: k-й по величине в потоке через кучу

Условие

Числа приходят потоком. После каждого выведите k-е по величине среди пришедших (с учётом повторов) или none, если чисел пока меньше k.

Первая строка: k n (1 ≤ k ≤ n ≤ 10⁴). Вторая: n целых чисел по модулю до 10⁹.

В стандартной библиотеке Swift нет кучи: реализуйте дженерик Heap<T: Comparable>.

Пример

3 6
4 5 8 2 3 10
none
none
4
4
4
5

Как подойти

Min-куча из k элементов.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.