Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 2.84 KB

README.md

File metadata and controls

47 lines (33 loc) · 2.84 KB

Множество

Реализуйте множество с операциями "добавление ключа", "удаление ключа", "проверка существования ключа".

Формат входного файла

В первой строке входного файла находится строго положительное целое число операций N, не превышающее 5 \cdot 10^5. В каждой из последующих N строк находится одна из следующих операций:

  • A x -- добавить элемент x в множество. Если элемент уже есть в множестве, то ничего делать не надо.
  • D x -- удалить элемент x. Если элемента x нет, то ничего делать не надо.
  • ? x -- если ключ x есть в множестве, выведите "Y", если нет, то выведите "N".

Аргументы указанных выше операций -- целые числа, не превышающие по модулю 10^{18}.

Формат выходного файла

Выведите последовательно результат выполнения всех операций "?". Следуйте формату выходного файла из примера.

Пример

input.txt

8
A 2
A 5
A 3
? 2
? 4
A 2
D 2
? 2

output.txt

Y
Y
N

Примечание

Эту задачу можно решить совершенно разными способами, включая использование различных средств стандартных библиотек (правда, не всех -- в стандартных библиотеках некоторых языков программирования используются слишком предсказуемые методы хеширования). Именно по этой причине ее разумно использовать для проверки реализаций хеш-таблиц, которые понадобятся в следующих задачах этой недели. После окончания текущей порции экспериментов, пожалуйста, не забудьте сдать правильное решение, чтобы эта задача была зачтена!

Решение

Set.scala