eolymp
bolt
Try our new interface for solving problems
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}. Следуйте формату выходного файла из примера.
Time limit 2 seconds
Memory limit 256 MiB
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