Problems
Двоичное дерево поиска 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}. Следуйте формату выходного файла из примера.
Input example #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
Output example #1
true false 5 3 none 3 2 none