X Olimpiada Informatyczna 2002/2003
|
Zadanie: tas
|
Autor: Paweł Parys
|
Zawody III stopnia, dzień drugi |
Plik źródłowy: | tas.xxx (xxx=pas,c,cpp) |
Alternatywne formaty: PostScript | PDF
Bajtazar ma talię złożoną z n kart, które lubi tasować. Pozycje kart w talii są ponumerowane od 1 do n. Bajtazar doszedł w tasowaniu do takiej wprawy, że za każdym razem wychodzi mu to tak samo, tzn. karta z pozycji k (1 <= k <= n) przechodzi zawsze na tę samą pozycję ak. Takie tasowanie powtarza l razy. Na koniec karta z pozycji k znajduje się na pozycji bk.
Napisz program, który:
W pierwszym wierszu standardowego wejścia znajdują się dwie dodatnie liczby całkowite n i l (1 <= n, l <= 1000000). W kolejnych n wierszach znajdują się kolejne elementy ciągu (bk), po jednym w wierszu. W wierszu k + 1 znajduje się liczba całkowita bk - końcowa pozycja karty z pozycji k, 1 <= bk <= n.
Twój program powinien wypisać na standardowe wyjście n liczb całkowitych - kolejne elementy ciągu (ak), po jednym w wierszu. W k-tym wierszu powinna się znajdować liczba ak - pozycja karty z pozycji k po jednokrotnym tasowaniu. Możesz założyć, że dla danych testowych zawsze istnieje szukany ciąg (ak). Jeśli jest wiele takich ciągów, Twój program powinien wypisać jeden z nich.
Dla danych wejściowych:
5 2 1 2 5 3 4
poprawnym wynikiem jest:
1 2 4 5 3
lub:
2 1 4 5 3