10629: Словник


Відправити розв'язок

Бали: 100 (partial)
Time limit: 2.0s
Memory limit: 512M

Author:
Problem type
Allowed languages
Brain****, C++, Java, Pascal, Python, v8js

Реалізуйте структуру даних типу “множина рядків”. Збережені рядки – непусті послідовності довжиною трохи більше 10 символів, що складаються з малих латинських букв. Структура даних повинна підтримувати операції додавання рядка до множини, видалення рядка з множини та перевірки належності даного рядка множині. Максимальна кількість елементів у множині, що зберігається, не перевищує 500000

Формат вхідних даних

Кожен рядок вхідних даних визначає одну операцію над множиною. Запис операції складається з типу операції та наступного за ним через пропуск рядка, над яким проводиться операція. Тип операції – один із трьох символів:

  • '+' означає додавання цього рядка до множини;
  • '-' означає видалення рядка з множини;
  • '?' означає перевірку належності даного рядка у множині.

Загальна кількість операцій у вхідному файлі не перевищує \(10^6\). Список операцій завершується рядком, в якому записано один символ # – ознака кінця вхідних даних. При додаванні елемента до множини НЕ ГАРАНТУЄТЬСЯ, що він відсутній у цій множині. При видаленні елемента з множини НЕ ГАРАНТУЄТЬСЯ, що він присутній у цій множині.

Формат вихідних даних

Програма має вивести для кожної операції типу ? один із двох рядків - YES або NO, залежно від того, чи зустрічається це слово в нашій множині.

Приклад вхідних даних-1

+ hello
+ bye
? bye
- bye
? bye
? hello
#

Приклад вихідних даних-1

YES
NO
YES

Коментарі

Ще немає коментарів.