|
|||||||||
|
Skarb
Alternatywne formaty: PostScript | PDF Król Bajtazar ukrywał w swym zamku skarb, a miejsce jego ukrycia trzymał w tajemnicy. Kiedy jednak wyruszał na wojnę bał się, że może zginąć i skarb przepadnie. Wybrał więc zaufanych strażników i każdemu powierzył część informacji potrzebnych do odnalezienia skarbu. Następnie rozkazał strażnikom zejść do lochów rozciągających się pod zamkiem (każdemu w inne miejsce) i chodzić po lochach metodą prawej ręki. Lochy to podziemne komnaty połączone korytarzami. Korytarze nie przecinają się poza komnatami. Korytarz może przebiegać pod innymi korytarzami. Nie ma korytarzy prowadzących do tej samej komnaty, z której wychodzą. Metoda prawej ręki polega na tym, że strażnik po wejściu do komnaty wychodzi z niej pierwszym korytarzem po prawej stronie. Strażnicy rozpoczynają wędrówkę przy wejściach do korytarzy, zatem może się zdarzyć, że wielu strażników zaczyna wędrówkę wychodząc z tej samej komnaty, jeśli tylko ruszają różnymi korytarzami. Król wie, że dopóki nie powróci z wojny lub nie polegnie, każdy ze strażników będzie wiernie wykonywał jego rozkazy. Jest jednak świadom, że gdy tylko dwóch (lub więcej) strażników spotka się w komnacie, to nie omieszka wymienić się wszystkimi posiadanymi informacjami dotyczącymi skarbu. Strażnicy nie są samolubni i wymieniają informacje, nawet, jeśli któryś z nich nie dowie się w ten sposób niczego nowego. Jeśli strażnicy rozpoczynają wędrówkę w tej samej komnacie, to od razu wymieniają się informacjami, które początkowo znają. Gdy jednak strażnicy mijają się w korytarzach, to nie rozmawiają ze sobą. Król zastanawia się, czy gdy wróci szczęśliwie z wojny, skarb będzie nadal bezpieczny. Chce on wiedzieć, którzy strażnicy mogą poznać wszystkie informacje potrzebne do odnalezienia skarbu. ZadanieNapisz program, który:
WejścieW pierwszym wierszu standardowego wejścia zapisana jest jedna liczba całkowita n. Jest to liczba komnat w lochach, 2 <= n <= 100. Komnaty są ponumerowane od 1 do n. W kolejnych n wierszach opisane są korytarze łączące komnaty. W wierszu i + 1 opisane są korytarze wychodzące z komnaty nr i, w kolejności zgodnej z ruchem wskazówek zegara. W każdym z tych wierszy znajdują się liczby całkowite pooddzielane pojedynczymi odstępami. Pierwsza z tych liczb, ki, to liczba korytarzy wychodzących z komnaty nr i, 1 <= ki <= n - 1. Dalej w tym samym wierszu zapisanych jest 2ki liczb całkowitych - każdy z wychodzących korytarzy jest opisany dwiema liczbami całkowitymi. Pierwsza z liczb opisujących korytarz to numer komnaty, do której on prowadzi. Druga z tych liczb to jego długość, liczba całkowita z zakresu od 1 do 100. Korytarze są dwukierunkowe, tzn. jeżeli z komnaty a wychodzi korytarz długości l prowadzący do komnaty b, to z komnaty b wychodzi korytarz długości l prowadzący do komnaty a. Każda para komnat może być połączona co najwyżej jednym korytarzem. Strażnik potrzebuje na przejście korytarzem dokładnie tyle czasu, ile wynosi jego długość. Zakładamy, że czas spędzany przez strażników w komnatach jest pomijalny. W wierszu n + 2 zapisane są dwie liczby całkowite k i l, 1 <= k <= 100, 1 <= l <= 100, gdzie k to liczba strażników, a l to liczba informacji potrzebnych do odnalezienia skarbu. Strażnicy są ponumerowani od 1 do k. Informacje dotyczące skarbu są ponumerowane od 1 do l. W kolejnych k wierszach opisani są strażnicy, w wierszu i + n + 2 opisany jest strażnik nr i. W każdym z tych wierszy zapisane są liczby całkowite pooddzielane pojedynczymi odstępami. Pierwsza liczba w wierszu to numer komnaty, w której początkowo znajduje się strażnik. Druga liczba to numer komnaty, do której strażnik ruszy jako pierwszej. Trzecia liczba, mi, to liczba informacji dotyczących skarbu, które strażnik nr i początkowo zna, 0 <= mi <= l. Dalej w wierszu znajduje się mi liczb całkowitych - numery informacji znanych początkowo strażnikowi nr i. WyjścieW pierwszym wierszu standardowego wyjścia Twój program powinien wypisać jedną liczbę całkowitą - liczbę strażników, którzy mogą kiedyś poznać wszystkie informacje potrzebne do odnalezienia skarbu. W następnych wierszach powinny znaleźć się uporządkowane rosnąco numery tych strażników, po jednym w wierszu. PrzykładDla danych wejściowych: 4 3 2 3 3 4 4 1 2 1 3 3 1 3 4 3 1 4 2 1 2 1 1 3 3 3 4 1 4 2 2 3 3 1 2 1 2 3 4 2 3 4 poprawnym wynikiem jest: 2 2 3 |