Polish version    English version  
  Historia OI -> IV OI 1996/1997 -> Zadania


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

Zadanie: WIA
Autor: Grzegorz Jakacki
WIARYGODNOŚĆ ŚWIADKÓW

Zawody III stopnia  
Plik źródłowy: WIA.??? (np. pas, c, cpp)
Plik wykonywalny: WIA.exe
Plik wejściowy: WIA.in
Plik wyjściowy: WIA.out

Sąd dysponuje zeznaniami świadków oznaczonych kolejno liczbami naturalnymi 1, 2, ... , n. Każde zeznanie jest stwierdzeniem postaci: "świadek i zgadza się ze świadkiem j" albo "świadek i nie zgadza się ze świadkiem j".

Jeśli świadek i zgadza się ze świadkiem j, oznacza to, że świadek i zgadza się też ze wszystkimi świadkami, z którymi zgadza się świadek j oraz nie zgadza się ze wszystkimi świadkami, z którymi nie zgadza się świadek j.

Mówimy, że świadek nie jest wiarygodny, jeśli z zeznań świadków, będących w posiadaniu sądu wynika, że jednocześnie zgadza się on i nie zgadza z pewnym dowolnym świadkiem.

Zadanie

Napisz program, który:
  • wczytuje z pliku tekstowego WIA.IN liczbę świadków i ich zeznania,
  • znajduje wszystkich świadków, którzy nie są wiarygodni,
  • zapisuje wynik w pliku tekstowym WIA.OUT.

Wejście

W pierwszym wierszu pliku tekstowego WIA.IN jest zapisana jedna liczba całkowita n, spełniająca nierówności 1 <= n <= 3000. Jest to liczba świadków.

W drugim wierszu pliku tekstowego WIA.IN jest zapisana jedna liczba całkowita m, spełniająca nierówności 0 <= m <= 8000. Jest to liczba zeznań.

W każdym z kolejnych m wierszy jest zapisana para liczb całkowitych i j, oddzielonych pojedynczym odstępem, gdzie 1 <= i <= n, 1 <= | j | <= n. Jeśli liczba j jest dodatnia - jest to zapis zeznania: "świadek i zgadza się ze świadkiem j". Jeśli liczba j jest ujemna - jest to zapis zeznania: "świadek i nie zgadza się ze świadkiem -j".

Wyjście

W pliku tekstowym WIA.OUT należy zapisać:
  • jedno słowo NIKT, jeśli na podstawie zeznań nie można znaleźć żadnego świadka, który nie jest wiarygodny,
  • albo — w porządku rosnącym — numery świadków, którzy nie są wiarygodni.

Przykład

Dla pliku tekstowego WIA.IN:
6
12
1 3
1 6
2 -1
3 4
4 1
4 -2
4 5
5 -1
5 -3
5 2
6 5
6 4
poprawnym rozwiązaniem jest plik tekstowy WIA.OUT:
1
3
4
6

Twój program powinien szukać pliku WIA.IN w katalogu bieżącym i tworzyć plik WIA.OUT również w bieżącym katalogu. Plik zawierający napisany przez Ciebie program w postaci źródłowej powinien mieć nazwę WIA.???, gdzie zamiast ??? należy wpisać co najwyżej trzyliterowy skrót nazwy użytego języka programowania. Ten sam program w postaci wykonalnej powinien być zapisany w pliku WIA.EXE.




Wersja do druku