Вершина#10172

Вершина

1 секунда
128 мегабайтів
Дуже легка

У орієнтованому графі потрібно знайти вершини, які недосяжні з певних заданих вершин.

Орієнтований граф складається з вершин, пронумерованих від до , і набору ребер p \to q, що з'єднують вершини і в одному напрямку.

Вершина вважається досяжною з вершини , якщо існує пряме ребро p \to r, або якщо існує така вершина , що досяжна з , а досяжна з .

Вершина є недосяжною з вершини , якщо не може бути досягнута з .

Вхідні дані

Вхідні дані складаються з кількох тестів. Для кожного графа перший рядок містить одне ціле число (1 \leq n \leq 100) - кількість вершин у графі.

Далі йде група рядків, кожен з яких містить набір цілих чисел. Група завершується рядком, що містить одне ціле число . Кожен рядок представляє собою набір ребер. Перше ціле число в наборі є початковою вершиною, а наступна група цілих чисел j, \ldots, k визначає множину ребер i \to j, \ldots, i \to k. Останнє ціле число в рядку завжди дорівнює . Кожна можлива початкова вершина (1 \leq i \leq n) може з'явитися в наборі даних один раз або не з'явитися взагалі. Після кожного визначення графа буде йти рядок, що містить список цілих чисел. Перше ціле число в рядку вказує, скільки цілих чисел слідує за ним.

Кожне з наступних цілих чисел представляє початкову вершину, яку потрібно дослідити. Потім йде наступний граф. Якщо графів більше немає, наступний рядок містить одне ціле число .

Вихідні дані

Для кожної досліджуваної початкової вершини ваша програма повинна визначити всі вершини, які недосяжні з неї. Кожен список повинен бути виведений в одному рядку, починаючи з кількості недосяжних вершин і закінчуючи номерами цих вершин.

prb10172.gif

Приклади

Приклад 1

Loading
Loading