Задача №1287. Бор
Эту задачу нельзя решить при помощи бора, только хешами!
Сейчас в этой задаче стоит ограничение TL=2 секунды, ML=1GB, и бору столько памяти недостаточно.
Реализуйте структуру данных типа “множество строк”. Хранимые строки – непустые
последовательности длиной не более 10 символов, состоящие из строчных латинских букв.
Структура данных должна поддерживать операции добавления строки в множество, удаления строки из
множества и проверки принадлежности данной строки множеству.
Максимальное количество элементов в хранимом множестве не превосходит \(10^6\)
Формат входных данных
Каждая строка входных данных задает одну операцию над множеством. Запись операции состоит из
типа операции и следующей за ним через пробел строки, над которой проводится операция.
Тип операции – один из трех символов:
+ означает добавление данной строки в множество;
- означает удаление строки из множества;
? означает проверку принадлежности данной строки множеству.
Общее количество операций во входном файле не превосходит \(10^6\). Список операций завершается строкой, в которой записан один символ # – признак конца входных данных.
При добавлении элемента в множество НЕ ГАРАНТИРУЕТСЯ, что он отсутствует в этом
множестве. При удалении элемента из множества НЕ ГАРАНТИРУЕТСЯ, что он присутствует в этом
множестве.
Формат выходных данных
Программа должна вывести для каждой операции типа ? одну из двух строк YES или NO, в
зависимости от того, встречается ли данное слово в нашем множестве.
+ hello + bye ? bye - bye ? bye ? hello #
YES NO YES