Zadanie : kod-graya-1c
Zadanie

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ń.

Wejście

Pierwszy wiersz wejścia zawiera kod Graya o maksymalnej długości 30 znaków.

Wyjście

W kolejnych wierszach wyjścia należy zapisać malejący ciąg numerów kodów Graya.

Przykład

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 :