Описание

Ограничение по времени: 500 ms
Ограничение по памяти: 256 Mb

Ответы на вопросы

Задача: Cow Evolution

Наступил 3019 год, и за прошедшие 1000 лет произошла удивительная эволюция коров.

Запись эволюции коровы может быть представлена как дерево, начинающееся с основной коровы без особенных черт. На каждом уровне наследования или все коровы получают новое качество или происходит разделение, когда часть коров получает это качество, а часть - нет.

Листья на дне дерева указывают все образовавшиеся под-популяции коров в 3019 году. Никакие листья (под-популяции) не содержат идентичные множества качеств. На рисунке под-популяция #1 не имеет никаких привнесённых качеств, а под-популяция #3 содержит качества "telepathic flying". Под-популяция #2 содержит качество "flying".

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

ФОРМАТ ВВОДА (файл evolution.in):

Первая строка ввода содержит количество под-популяций, \(N\) (\(2 \leq N \leq 25\)). Каждая из последующих \(N\) строк описывает одну под-популяцию. Эта строка начинается с целого числа \(K\) (\(0 \leq K \leq 25\)), за которым следуют \(K\) характеристик всех коров этой популяции. Характеристики - это строки, содержащие до 20 маленьких латинских символов (a..z). Никакие из под-популяций не содержат в точности одни и те же характеристики.

ФОРМАТ ВЫВОДА (файл evolution.out):

Выведите "yes" если возможно сформировать правильное эволюционное дерево и "No" в противном случае.


Прикрепите файл с исходным кодом программы:
     
или введите исходный код на языке:


Правила оформления программ и список ошибок при автоматической проверке задач
           

Ваш ответ:

Загруженные файлы:


Нет

Примечание учителя: