ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

1347. Блог

Ограничение времени: 0.4 секунды
Ограничение памяти: 64 МБ
В последнее время много пользователей начало вести интернет-дневники — блоги. Пользователи пишут дневники и изредка читают чужие. Пользователи эти отличаются от среднестатистических граждан, в частности тем, что обожают считать своих виртуальных друзей. Другом они называют любого, кто читает их писанину. Считается, что один пользователь читает блог другого, если он упомянул его в своем блоге.
Для каждого пользователя выведите список его друзей, людей, которые считают данного пользователя своим другом, и список взаимных друзей, то есть тех, кто является другом данного пользователя, и считает его своим другом.
Даны блоги всех этих пользователей. Требуется выдать для каждого пользователя указанные три списка. Пользователи помечают своих друзей тэгом <friend>. Тэгом называется строка, состоящая из строчных латинских букв, окруженных символами меньше (<) и больше (>). Закрывающимся тэгом называется строка, состоящая из строчных латинских букв, окруженных символами меньше и слэшем (</) в начале и больше (>) в конце.

Исходные данные

В первой строке указано число N (1 ≤ N ≤ 100) — количество блогов во входных данных. В первой строке каждого блога указано имя блоггера, создавшего этот дневник. Все имена авторов блога различны. Следующая строка начинается с тэга <blog>. Последняя строка блога заканчивается закрывающимся тэгом </blog>. В тексте блога нет других тэгов <blog>. Для каждого открывающегося и закрывающегося тэга в тексте присутствует соответствующий ему парный тэг. Символы больше, меньше и слэш появляются только в тэгах. Во входных данных встречаются только строчные и заглавные латинские буквы, цифры, символы больше, меньше, слэш, точка, запятая, символ подчеркивания. Имена друзей регистро­чувствительны. Тэг нельзя разорвать переводом строки. Имя «друга» может состоять из строчных и заглавных латинских букв и символа подчеркивания. Имя «друга» не может быть пусто. Длина строки блога не превышает 255 символов. Блог содержит не более 1000 строк. Число людей, упоминаемых в блогах, не превышает 100.

Результат

Для каждого блоггера, блог которого присутствует во входных данных, вы должны вывести списки тех, чьи блоги он упомянул (друзья), тех, кто упомянул его в своем блоге (в друзьях), и тех, кто есть как в первом списке, так и во втором. Каждый список нужно приводить в отдельной строке, упорядоченный по алфавиту. Имена в списке разделяются запятой и пробелом. Перед списком «друзей» необходимо вывести строку «1: ». Перед списком «в друзьях» необходимо вывести строку «2: ». Перед списком «взаимных друзей» необходимо вывести строку «3: ». Перед этими тремя списками необходимо вывести имя блоггера, а перед ним — пустую строку (если это не первый блоггер). Блоггер не является своим другом, даже если упомянул себя в своем блоге.

Пример

исходные данныерезультат
3
xoposhiy
<blog>
Tomorrow I found <friend>_denplusplus_</friend> to
 be <b>smartest</b> blogger in the net.
Also I received interesting link from
 <friend>strange_human</friend>
</blog>
_denplusplus_
<blog>
Some shit about my work.
</blog>
strange_human
<blog>
<friend>xoposhiy</friend>
<friend>_denplusplus_</friend>
</blog>
xoposhiy
1: _denplusplus_, strange_human
2: strange_human
3: strange_human

_denplusplus_
1: 
2: strange_human, xoposhiy
3: 

strange_human
1: _denplusplus_, xoposhiy
2: xoposhiy
3: xoposhiy
Автор задачи: Ден Расковалов
Источник задачи: Чемпионат школьников. Март 2005