Donada una n, una permutació de {0, 1, … n−1} és una seqüència on apareix cadascun dels nombres 0, 1, … n−1 exactament una vegada. Per exemple, si n = 3, les seqüències (1 2 0), (2 0 1) i (0 1 2) són permutacions de {0, 1, 2}.
Donades dues permutacions σ = (σ0, …, σn−1) i τ = (τ0, …, τn−1) de {0, 1, … n−1 }, el seu producte σ ∘ τ es defineix com la permutació ρ = (ρ0, …, ρn−1) tal que ρi = στi. Per exemple, si n = 3, σ = (1 2 0) i τ = (2 0 1), llavors σ ∘ τ = (0 1 2), perquè:
Feu un programa que, donada una permutació σ i un natural k, calculi la potència de σ elevada a k: σk = σ ∘ … ∘ σk). Per conveni, σ0 = (0, 1, …, n−1).
Entrada
L’entrada inclou diversos casos. Cada cas consisteix en el nombre n (1 ≤ n ≤ 104), seguit de n nombres entre 1 i n que descriuen la permutació σ, seguit del nombre k (0 ≤ k ≤ 109).
Sortida
Escriviu la permutació σk.
Observació
La solució esperada per a aquest problema té cost O(n · logk). Les solucions que tinguin un cost Ω(n · k) podran aconseguir com a molt 3 punts sobre 10.
Podeu afegir unes (poques) línies de comentaris explicant què intenteu fer.
Si us cal, podeu fer servir que el producte de permutacions és associatiu.
Input
3 1 2 0 0 3 1 2 0 2 4 0 2 3 1 1 10 4 3 7 8 0 5 2 1 6 9 5
Output
0 1 2 2 0 1 0 2 3 1 4 7 6 1 0 5 8 2 3 9