eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Двійкове дерево пошуку 2

Двійкове дерево пошуку 2

Реалізуйте збалансоване двійкове дерево пошуку. \InputFile Вхідний файл містить опис операцій з деревом, їх кількість не перевищує \textbf{100000}. Формат операцій дивіться у \href{/problems/4146}{попередній задачі}. У кожному рядку знаходиться одна з наступних операцій: \begin{itemize} \item \textbf{insert x} - додати у дерево ключ \textbf{x}. Якщо ключ \textbf{x} уже в дереві, то нічого робити не потрібно. \item \textbf{delete x} - видалити з дерева ключ \textbf{x}. Якщо ключа \textbf{x} в дереві немає, то нічого робити не потрібно. \item \textbf{exists x} - якщо ключ \textbf{x} є в дереві, виведіть "\textbf{true}", інакше "\textbf{false}". \item \textbf{next x} - виведіть мінімальний елемент у дереві, строго більший \textbf{x}, або "\textbf{none}", якщо такого немає. \item \textbf{prev x} - виведіть максимальний елемент у дереві, строго менший \textbf{x}, або "\textbf{none}", якщо такого немає. \item \textbf{kth k} - виведіть \textbf{k}-ий за величиною елемент (нумерація з одиниці). Якщо такого не існує, то виведіть "\textbf{none}". \end{itemize} Усі числа у вхідному файлі цілі і по модулю не перевищують \textbf{10^9}. \OutputFile Виведіть послідовно результат виконаня усіх операцій \textbf{exists},\textbf{ next},\textbf{ prev}. Слідуйте формату вихідного файла з прикладу.
Ліміт часу 2 секунди
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
insert 2
insert 5
insert 3
exists 2
exists 4
next 4
prev 4
delete 5
next 4
prev 4
kth 1
kth 3
Вихідні дані #1
true
false
5
3
none
3
2
none