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
Ndat există cel puținKposibilităț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.