Pe vârfurile unui poligon regulat și-au făcut cuibul 𝑁
păsări. Cele 𝑁
vârfuri ale poligonului sunt numerotate cu numere de la 0
la 𝑁−1
în ordine sens trigonometric. Fiecare pasăre se găsește în câte un cuib. La un moment dat păsările își schimbe cuiburile. Se obține astfel o permutare (𝑐
0
,𝑐
1
,𝑐
2
,..., 𝑐
𝑁−1
)
unde 𝑐
𝑖
reprezintă cuibul în care s-a mutat pasărea care locuia inițial în cuibul 𝑖
. Pentru ca toate păsările sa depună același efort cuiburile vor fi alese astfel încât distanța între cuibul inițial 𝑖
și cel final 𝑐
𝑖
să fie aceeași pentru toate cele 𝑁
păsări. Se consideră toate permutările (𝑐
0
,𝑐
1
,𝑐
2
,..., 𝑐
𝑁−1
)
obținute după mutarea păsărilor și se ordonează lexicografic.
Cerința
Scrieți un program citește două numere naturale 𝑁
și 𝐾
și care afișează permutarea situată pe poziția 𝐾
în ordine lexicografică după ordonarea permutărilor obținute prin mutarea păsărilor. ATENȚIE: numărul K
va fi dat în baza 2
.
Date de intrare
De la intrarea standard se va citi de pe prima linie numărul 𝑁
și de pe a doua linie un șir de valori 0
sau 1
neseparate prin spatii reprezentând cifrele numărului K
scris în baza 2
.
Date de ieșire
La ieșirea standard vor fi afișate N
numere întregi distincte, separate prin câte un spațiu, cu valori între 0
și 𝑁−1
, reprezentând permutarea situată pe poziția 𝐾
în ordine lexicografică între toate permutările posibile obținute după mutarea păsărilor.
Restricții și precizări
1 ≤ N ≤ 1.000.000
- Se asigură că pentru
N
dat există cel puținK
posibilități pentru mutarea păsărilor.
Exemplul 1:
Intrare
4 101
Ieșire
3 0 1 2
Explicație
Avem N = 4
păsări în 4
cuiburi situate în vârfurile unui pătrat. Acestea se pot muta respectând condițiile din enunț în 6
moduri care în ordine lexicografică se reprezintă prin următoarele permutări:
0 1 2 3
1 0 3 2
1 2 3 0
2 3 0 1
3 0 1 2
3 2 1 0
Numărul K
are reprezentarea 101
în baza 2
deci are valoarea K = 5
în baza 10
.
Avem nevoie de a cincea permutare în ordine lexicografică. Aceasta este 3 0 1 2
.
Remarcați că:
Pentru prima permutare păsările rămân pe loc deci toate parcurg distanța 0
.
Pentru a patra permutare păsările situate în vârfuri opuse își schimbă locurile intre ele și astfel toate parcurg o distanță egala cu diagonala pătratului.
Pentru celelalte 4
permutări fiecare pasăre parcurge o distanță egală cu latura pătratului.
Exemplul 2:
Intrare
5 11
Ieșire
2 3 4 0 1
Explicație
Avem 5
cuiburi pe vârfurile unui pentagon regulat. Există 5
posibilități în care păsările se pot muta. În ordine lexicografică acestea sunt descrise de următoarele permutări:
0 1 2 3 4
1 2 3 4 0
2 3 4 0 1
3 4 0 1 2
4 0 1 2 3
Valoarea lui K
în baza 2
este 11
deci K = 3
.
Remarcați că:
Pentru prima permutare păsările stau pe loc deci parcurg distanța 0
.
Pentru a 2-a și a 5-a fiecare pasăre parcurge o distanța egală cu latura pentagonului
Pentru a 3-a și a 4-a fiecare pasăre parcurge o distanță egală cu diagonala pentagonului.