Wprowadzenie
Klasy permutacji antsy zdefiniowałem we wcześniejszym wyzwaniu . Przypominamy, że permutacja p liczb od 0 do r-1 jest niespokojna, jeśli dla każdego wpisu p [i] oprócz pierwszego istnieje kilka wcześniejszych wpisów p [ik] takich, że p [i] == p [ ik] ± 1 . Jako zabawny fakt stwierdziłem również, że dla r ≥ 1 istnieją dokładnie 2 permutacje antsy r-1 o długości r . Oznacza to, że istnieje zgodność jeden na jeden między permutacjami antsy o długości r i wektorami binarnymi o długości r-1. W tym wyzwaniu Twoim zadaniem jest wdrożenie takiej korespondencji.
Zadanie
Twoim zadaniem jest napisanie programu lub funkcji, która pobiera wektor binarny o długości 1 ≤ n ≤ 99 i generuje anutyczną permutację o długości n + 1 . Permutacja może być oparta na 0 na 1 (ale musi być spójna), a dane wejściowe i wyjściowe mogą mieć dowolny rozsądny format. Co więcej, różne dane wejściowe muszą zawsze dawać różne wyniki; poza tym możesz zwrócić dowolną permutację antsy, którą chcesz.
Wygrywa najniższa liczba bajtów.
Przykład
Permutacje antsy (oparte na 0) o długości 4 są
0 1 2 3
1 0 2 3
1 2 0 3
1 2 3 0
2 1 0 3
2 1 3 0
2 3 1 0
3 2 1 0
a twój program powinien zwrócić jeden z nich dla każdego z ośmiu bitowych wektorów o długości 3:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1
i 0 0 1
powinien dawać wyjścia o różnych długościach.