EduBrick

A. Множество

2000 мс · 256 МБ · всё или ничего

Реализуйте множество целых чисел с тремя операциями: добавить число, удалить число, проверить наличие. Повторное добавление уже имеющегося числа множество не меняет; удаление отсутствующего — тоже.

Встроенными структурами (std::set, std::map, unordered_set) пользоваться нельзя: задача ровно про то, чтобы написать своё дерево.

Формат ввода

В первой строке — число операций nn (1≤n≤3⋅1051 \le n \le 3 \cdot 10^5). В следующих nn строках — операции: + x добавить, - x удалить, ? x проверить. Все числа целые, по модулю не больше 10910^9.

Формат вывода

На каждый запрос ? выведите 1, если число есть в множестве, и 0 иначе.

Примеры

ввод
6
+ 5
+ 7
? 5
- 5
? 5
? 7
вывод
1
0
1
ввод
3
? 1
- 1
? 1
вывод
0
0
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.