Załóżmy, że dysponujemy wszystkimi kodami Graya długości 2. Wówczas możemy do tych kodów dopisać odbicie lustrzane listy kodów (od końca), pierwszą połowę kodów poprzedzić zerem a drugą jedynką - tak otrzyma lista jest listą wszystkich kodów Graya długości 3.
numer kody dł.2 lista i odbicie kody dł.3 --------------------------------------------------------- 0 00 00 000 1 01 01 001 2 11 11 011 3 10 10 010 4 10 110 5 11 111 6 01 101 7 00 100
W ten sam sposób z listy kodów długości n otrzymujemy listę kodów długości n+1. Wynika stąd, że każdy kod na liście kodów długości n pozwala otrzymać dwa kody na liście kodów długości n+1. Na przykład, w powyższej tabeli z kodu 10 otrzymano kody 010 i 110. Natomiast sam kod 01 otrzymano z kodu 1 poprzez dopisanie cyfry 0.
Napisz program, który dla podanego kodu Graya wyznaczy nierosnący ciąg numerów kodów, z których ten kod powstał w wyniku powyższych przekształceń.
Pierwszy wiersz wejścia zawiera kod Graya o maksymalnej długości 30 znaków.
W kolejnych wierszach wyjścia należy zapisać malejący ciąg numerów kodów Graya.
Dla danych podanych na wejściu:
1010
Poprawną odpowiedzią jest wyjście:
12 3 3 0
Jeśli chcesz zobaczyć inny przykład odśwież tę stronę klawiszem F5
Opcje zadania:
Biblioteki : iostream iomanip cmath string Limit czasu : 0.1 s Limit pamięci : 32 MB Słowa niedozwolone :