eolymp
bolt
Try our new interface for solving problems
Məsələlər

Ничего и не терялось

Ничего и не терялось

Разработка новой поисковой системы, которая ведётся группой компании \textit{Giggle}, проходит под девизом "Ничего не терялось". Вы работаете в отделе передовых разработок, и на сегодняшний день вашей задачей является разработка тестовой версии поискового "движка". Тестовая версия реализует лишь часть функциональности полной версии. В частности, отсутствуют такие функции, как использование логических выражений в запросах, перевод найденных страниц с одного языка на другой и т.д. Возможности тестовой версии поисковой системы ограничиваются обработкой трёх видов запросов: запросов на добавление, на удаление и на поиск. Система работает следующим образом. В любой момент времени существует множество известных системе \textit{сайтов}, причём для каждого сайта известно множество \textit{ключевых слов}, встречающихся на нём. Запрос на добавление содержит ключевое слово и название сайта. При его выполнении ключевое слово добавляется в множество ключевых слов, присутствующих на данном сайте. Если этого слова в соответствующем множестве ещё нет, то результатом запроса является \textbf{OK}, в противном случае - \textbf{Already exist}. Запрос на удаление содержит ключево слово и название сайта. При его выполнении ключевое слово исключается из множества ключевых слов, присутствующих на данном сайте. Если этого слова в соответствующем множестве нет, то результатом запроса является \textbf{Not found},в противном случае - \textbf{OK}. Запрос на поиск содержит только ключевое слово. Результатом запроса является лексикографически отсортированный список сайтов, содержащих данное ключевое слово. При этом в результат выводятся только первые \textbf{10} сайтов из этого списка. Задан список запросов. Необходимо вывести результат их последовательного выполнения. \InputFile Первая строка входного файла содержит целое число \textbf{n} - количество запросов, которые необходимо обработать (\textbf{0} ≤ \textbf{n} ≤ \textbf{2500}). Каждая из последующих \textbf{n} строк содержит запрос. Запрос на добавление имеет следующий формат: \textbf{Add keyword "}<\textbf{keyword}>\textbf{" to }<\textbf{site}>, где <\textbf{keyword}> ключевое слово, <\textbf{site}> - название сайта, на котором появилось это ключевое слово. Запрос на удаление имеет следующий формат: \textbf{Remove keyword "}<\textbf{keyword}>\textbf{" from }, где <\textbf{keyword}> - ключевое слово, <\textbf{site}> - название сайта, на котором появилось это ключевое слово. Запрос на поиск имеет следующий формат: \textbf{Search "}<\textbf{keyword}>\textbf{"}, где <\textbf{keyword}> - ключевое слово. Все ключевые слова (<\textbf{keyword}>) состоят из строчных букв латинского алфавита. Длины ключевых слов не превосходят \textbf{30} символов. Все названия сайтов (<\textbf{site}>) состоят из строчных букв латинского алфавита, символов "косая черта" ("\textbf{/}") и точек ("\textbf{.}"). Длины названий сайтов не превосходят \textbf{100} символов. \OutputFile Для каждого запроса выведите его результат. При этом придерживайтесь формата, приведённого в примерах. Не забудьте обратить внимание на второй пример. Результаты запросов разделяйте строкой из пяти символов "равно" ("\textbf{=}").
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
12
Add keyword "olympiads" to neerc.ifmo.ru/school/io
Add keyword "neerc" to neerc.ifmo.ru
Search "olympiads"
Search "neerc"
Add keyword "olympiads" to neerc.ifmo.ru
Search "olympiads"
Add keyword "olympiads" to neerc.ifmo.ru/school/io
Remove keyword "olympiads" from neerc.ifmo.ru/school/io
Search "olympiads"
Remove keyword "olymp" from neerc.ifmo.ru
Remove keyword "olympiads" from neerc.ifmo.ru
Search "olympiads"
Çıxış verilənləri #1
OK
=====
OK
=====
Results: 1 site(s) found
1) neerc.ifmo.ru/school/io
=====
Results: 1 site(s) found
1) neerc.ifmo.ru
=====
OK
=====
Results: 2 site(s) found
1) neerc.ifmo.ru
2) neerc.ifmo.ru/school/io
=====
Already exists
=====
OK
=====
Results: 1 site(s) found
1) neerc.ifmo.ru
=====
Not found
=====
OK
=====
Results: 0 site(s) found