Polish version    English version  
  O olimpiadzie -> Zadania -> VII OI 1999/2000


 Aktualności
 O olimpiadzie
O olimpiadzie
Zadania
I OI 1993/1994
II OI 1994/1995
III OI 1995/1996
IV OI 1996/1997
V OI 1997/1998
VI OI 1998/1999
VII OI 1999/2000
VIII OI 2000/2001
IX OI 2001/2002
X OI 2002/2003
XI OI 2003/2004
XII OI 2004/2005
XIII OI 2005/2006
XIV OI 2006/2007
XV OI 2007/2008
Archiwum zadań
Ankieta OI
 Komitety
 XVIII OI 2010/2011
 Historia OI
 Książeczki OI
 Reprezentacja
 Obozy Olimpiady
 Galeria zdjęć
 Ciekawe odsyłacze
 OIG LiveCD
 IV OIG 2009/2010
 Historia OIG
 SIO
 MAIN
VII Olimpiada Informatyczna 1999/2000

Zadanie: POD
Autor: Marcin Kubica
Podpisy

Zawody II stopnia, dzień próbny 8 lutego 2000
Plik źródłowy: POD.??? (np. pas, c, cpp)
Plik wykonywalny: POD.exe
Plik wejściowy: POD.in
Plik wyjściowy: POD.out

W Urzędzie Ochrony Bajtocji (UOB) zatrudnieni są urzędnicy oraz dowódcy. W archiwum znajdują się teczki z aktami wszystkich urzędników. W każdej teczce znajduje się podpis urzędnika oraz podpisy pracowników (urzędników lub dowódców), którzy poręczają za jego lojalność. Każdy nowoprzyjmowany urzędnik musi uzyskać przynajmniej jedno poręczenie. Z biegiem czasu lista poręczycieli może się powiększać. UOB dowiedział się ostatnio, że do grona dowódców przeniknął szpieg wrogiej Mikromięklandii. Kolejni szpiedzy byli wprowadzani do UOB na stanowiska urzędnicze dzięki poręczeniu szpiega-dowódcy i/lub innych wprowadzonych szpiegów. Tacy szpiedzy mają poręczenia wyłącznie od pracowników będących szpiegami.

Wiarygodność urzędnika można podważyć, jeżeli pośrednio nie ma on poręczenia żadnego dowódcy, który nie jest szpiegiem, tzn. nie istnieje taki ciąg pracowników UOB p1, p2, ... , pk, że p1 jest dowódcą nie będącym szpiegiem, pk jest danym urzędnikiem i (dla i=1, ... , k-1>) pi poręczył za pi+1.

Jeżeli założenie o pewnym dowódcy, że jest szpiegiem spowodowałoby, że wiarygodność urzędnika zostałaby podważona, to urzędnik ten jest podejrzany o szpiegostwo. Dowództwo UOB chciałoby zobaczyć listę takich urzędników, i to jak najszybciej!

Przykład

Dowódcy: Anna, Grzegorz.
Urzędnicy: Bolesław (poręczyła Anna), Celina (poręczył Bolesław), Dorota (poręczyli Bolesław i Celina), Eugeniusz (poręczyli Anna i Grzegorz), Felicja (poręczył Eugeniusz), Halina (poręczyli Grzegorz i Ireneusz), Ireneusz (poręczyli Grzegorz i Halina).
Podejrzani: Bolesław, Celina, Dorota, Halina, Ireneusz.

Zadanie

Napisz program, który:

  • wczyta z pliku tekstowego POD.IN liczbę dowódców i urzędników w UOB oraz informacje o poręczeniach,
  • wyznaczy listę urzędników podejrzanych o szpiegostwo,
  • zapisze do pliku tekstowego POD.OUT.

Wejście

W pierwszym wierszu pliku tekstowego POD.IN zapisana jest dokładnie jedna dodatnia liczba całkowita n 1<=n<=500 będąca liczbą pracowników UOB. Pracownicy są ponumerowani od 1 do n. W kolejnych n wierszach zapisane są opisy poręczeń. W i+1-ym wierszu pliku znajduje się opis poręczeń udzielonych pracownikowi nr i. Jest to ciąg liczb całkowitych pooddzielanych pojedynczymi odstępami. Pierwsza liczba w tym ciągu, 0<=mi, jest równa liczbie poręczeń udzielonych pracownikowi nr i. Kolejne mi liczb to numery pracowników, którzy poręczyli za prawdomówność pracownika nr i. (Tak więc liczba wyrazów ciągu w i+1-ym wierszu wynosi mi + 1.) Dowódcy to Ci pracownicy, za których nikt nie poręczył.

Wyjście

Twój program powinien:

  • w kolejnych wierszach pliku tekstowego POD.OUT zapisać w rosnącej kolejności, po jednej liczbie w każdym wierszu, ciąg dodatnich liczb całkowitych będących numerami urzędników podejrzanych o szpiegostwo - jeżeli tacy urzędnicy są,
  • w pierwszym i jedynym wierszu pliku wyjściowego POD.OUT zapisać dokładnie jedno słowo BRAK - jeżeli takich urzędników nie ma.

Przykład

Dla pliku wejściowego POD.IN

9
0
1 1 
1 2
2 2 3
2 1 7
1 5
0
2 7 9
2 7 8

poprawną odpowiedzią jest plik wyjściowy POD.OUT

2
3
4
8
9



Wersja do druku