Ничего не потерялось
(Время: 5 сек. Память: 16 Мб Сложность: 51%)
Разработка новой поисковой системы, которая ведется группой компаний Giggle, проходит под лозунгом «Ничего и не терялось». Вы работаете в отделе передовых разработок, и на сегодняшний день вашей задачей является разработка тестовой версии поискового «движка».
Тестовая версия реализует лишь часть функциональности полной версии. В частности, отсутствуют такие функции, как использование логических выражений в запросах, перевод найденных страниц с одного языка на другой и т.д.
Возможности тестовой версии поисковой системы ограничиваются обработкой трех видов запросов: запросов на добавление, на удаление и на поиск. Система работает следующим образом. В любой момент времени существует множество известных системе сайтов, причем для каждого сайта известно множество ключевых слов, встречающихся на нем.
Запрос на добавление содержит ключевое слово и название сайта. При его выполнении ключевое слово добавляется в множество ключевых слов, присутствующих на данном сайте. Если этого слова в соответствующем множестве еще нет, то результатом запроса является «OK», в противном случае – «Already exists».
Запрос на удаление содержит ключевое слово и название сайта. При его выполнении ключевое слово исключается из множества ключевых слов, присутствующих на данном сайте. Если этого слова в соответствующем множестве нет, то результатом запроса является «Not found», в противном случае – «OK».
Запрос на поиск содержит только ключевое слово. Результатом запроса является лексикографически отсортированный список сайтов, содержащих данное ключевое слово. При этом в результат выводятся только первые 10 сайтов из этого списка.
Задан список запросов. Необходимо вывести результат их последовательного выполнения.
Входные данные
Первая строка входного файла INPUT.TXT содержит целое число n – количество запросов, которые необходимо обработать (0 ≤ n ≤ 2500). Каждая из последующих n строк содержит запрос. Запрос на добавление имеет следующий формат:
Add keyword < keyword > to < site >, где < keyword > – ключевое слово, – название сайта, на который добавляется это ключевое слово.
Запрос на удаление имеет следующий формат:
Remove keyword < keyword > from < site >, где < keyword > – ключевое слово, < site > – название сайта, на котором удаляется это ключевое слово.
Запрос на поиск имеет следующий формат:
Search < keyword >, где < keyword > – ключевое слово.
Все ключевые слова (< keyword >) состоят из строчных букв английского алфавита. Длины ключевых слов не превосходят 30 символов.
Все названия сайтов (< site >) состоят из строчных букв английского алфавита, символов «косая черта» («/») и точек («.»). Длины названий сайтов не превосходят 100 символов.
Выходные данные
В выходной файл OUTPUT.TXT выведите результат для каждого запроса. При этом придерживайтесь формата, приведенного в примерах. Не забудьте обратить внимание на второй пример. Результаты запросов разделяйте строкой из пяти символов «равно» («=»).
Примеры
№ | INPUT.TXT | OUTPUT.TXT |
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" | 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 |
2 | 12
Add keyword "keyword" to site01
Add keyword "keyword" to site02
Add keyword "keyword" to site03
Add keyword "keyword" to site04
Add keyword "keyword" to site05
Add keyword "keyword" to site06
Add keyword "keyword" to site07
Add keyword "keyword" to site08
Add keyword "keyword" to site09
Add keyword "keyword" to site10
Add keyword "keyword" to site11
Search "keyword" | OK
=====
OK
=====
OK
=====
OK
=====
OK
=====
OK
=====
OK
=====
OK
=====
OK
=====
OK
=====
OK
=====
Results: 11 site(s) found
1) site01
2) site02
3) site03
4) site04
5) site05
6) site06
7) site07
8) site08
9) site09
10) site10 |
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
|