В рубрике Авито «Велосипеды» объявления публикуют и снимают. Операции идут списком ops:
["add", p] — опубликовали объявление с ценой p рублей; ["remove", p] — сняли одно объявление с ценой p (гарантируется, что такое есть);
["kth", k] — k-я по возрастанию цена среди активных объявлений, повторы считаются отдельно. Если активных меньше k, ответ −1.
Верните список ответов на запросы kth по порядку. Так виджет «дешевле, чем 80 % похожих» берёт порог без сортировки всей рубрики.
В работе: Порог цены для плашки «хорошая цена» по живой рубрике.
Пример 1
ops = [["add", 15000], ["add", 9000], ["add", 15000], ["kth", 2], ["remove", 9000], ["kth", 2], ["kth", 3]]
[15000, 15000, -1]
Сначала цены 9000, 15000, 15000 — вторая 15000. После снятия их две, третьей нет: −1.
Пример 2
ops = [["kth", 1]]
[-1]
Пустая рубрика.
Ограничения
- 0 ≤ длина
ops≤ 10⁵ - 1 ≤ p ≤ 10⁶, 1 ≤ k ≤ 10⁵
- Лимит — 3 с на тест (3000 мс).
print() и console.log() уходят в консоль.
def kth_cheapest(ops):
Источник: наша задача на данных Авито. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.