|
|||||||||
|
Małpki
Alternatywne formaty: PostScript | PDF Na drzewie wisi n małpek ponumerowanych od 1 do n. Małpka z nr 1 trzyma się gałęzi ogonkiem. Pozostałe małpki albo są trzymane przez inne małpki, albo trzymają się innych małpek, albo jedno i drugie równocześnie. Każda małpka ma dwie przednie łapki, każdą może trzymać co najwyżej jedną inną małpkę (za ogon). Rozpoczynając od chwili 0, co sekundę jedna z małpek puszcza jedną łapkę. W ten sposób niektóre małpki spadają na ziemię, gdzie dalej mogą puszczać łapki (czas spadania małpek jest pomijalnie mały). ZadanieNapisz program, który:
WejściePierwszy wiersz standardowego wejścia zawiera dwie dodatnie liczby całkowite n i m, 1 <= n <= 200000, 1 <= m <= 400000. Liczba n oznacza liczbę małpek, a liczba m czas (w sekundach) przez jaki obserwujemy małpki. Kolejne n wierszy zawiera opis sytuacji początkowej. W wierszu k + 1 (1 <= k <= n) znajdują się dwie liczby całkowite oznaczające numery małpek trzymanych przez małpkę nr k. Pierwsza z tych liczb to numer małpki trzymanej lewą łapką, a druga - prawą. Liczba -1 oznacza, że małpka ma wolną łapkę. Kolejne m wierszy opisuje wyniki obserwacji małpek. W i-tym spośród tych wierszy (1 <= i <= m) znajdują się dwie liczby całkowite. Pierwsza z nich oznacza numer małpki, a druga numer łapki (1 - lewa, 2 - prawa), którą małpka puszcza w chwili i - 1. WyjścieTwój program powinien wypisać na standardowe wyjście dokładnie n liczb całkowitych, po jednej w wierszu. Liczba w wierszu i powinna oznaczać chwilę, w której małpka nr i spadła na ziemię, lub być równa -1, jeśli małpka nie spadła na ziemię w trakcie obserwacji. PrzykładDla danych wejściowych: 3 2 -1 3 3 -1 1 2 1 2 3 1 poprawnym wynikiem jest: -1 1 1 |