Задачі
Двійкове дерево пошуку 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}. Слідуйте формату вихідного файла з прикладу.
Вхідні дані #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