Напишіть програму, яка реалізує структуру даних, що дозволяє додавати і видаляти елементи, а також знаходити k-ий максимум.
Перший рядок містить кількість команд n (n ≤ 10^5
). Наступні n рядків містять по одній команді кожна. Команду записано у вигляді двох чисел c[i]
та k[i]
- тип і аргумент команди відповідно (|k[i]
| ≤ 10^9
). Підтримувані команди:
+1: Додати елемент з ключем k[i]
;
0: Знайти і вивести k[i]
-ий максимум;
-1: Видалити елемент з ключем k[i]
.
Гарантується, що у процесі роботи в структурі не потрібно зберігати елементи з рівними ключами або видаляти неіснуючі елементи. Також гарантується, що при запиті k[i]
-го максимуму, він існує.
Для кожної команди нульового типу у вихідний файл повинен бути виведений рядок, що містить єдине число - k[i]
-ий максимум.