Polish version    English version  
  Historia OI -> X OI 2002/2003 -> 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
Terminarz
Zadania
Wyniki III etapu
Wyniki II etapu
Wyniki I etapu
II Etap
Przepisy
Dla zawodnikow
Przydatne zasoby
IX OI 2001/2002
VIII OI 2000/2001
VII OI 1999/2000
VI OI 1998/1999
V OI 1997/1998
IV OI 1996/1997
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
X Olimpiada Informatyczna 2002/2003

Zadanie: tas
Autor: Paweł Parys
Tasowanie

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.

Zadanie

Napisz program, który:

  • wczyta ze standardowego wejścia liczby n i l, oraz ciąg liczb (bk),
  • wyznaczy ciąg liczb (ak),
  • wypisze go na standardowe wyjście.

Wejście

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.

Wyjście

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.

Przykład

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



Wersja do druku