ビットあみだくじ 〜 横へな 2013.6.1

問題

縦棒が9本のあみだくじがある。
あみだくじの上部には左から順に 0〜8 の番号が振られている。この番号は順序は固定。
あみだくじを実行(?)した結果、最下部に0〜8がどのように並ぶのかを計算する。

この問題のあみだくじの詳細な仕様

この問題のあみだくじは普通のあみだくじと異なり、隣同士ではない縦棒を結ぶように横線が引かれる場合がある。
例えば、下図の0からたどった場合は黄色の線を、5からたどった場合緑の線をたどる。

横線がある部分を 1 、横線がない部分を 0 で表すと、縦棒が9本あるので、一段分のあみだくじは 8桁の2進数になる。
横線は4段なので、16進数で表現すると、2桁の16進数が4個できる。

入力と出力

入力は d6-7b-e1-9e のようになっている。
つまり、ハイフン( - ) で区切られた二桁の16進数が四個である。
出力は、あみだくじの実行結果を左から順に並べたものである。
上記の例では図の通り 740631825 となる。

補足

サンプルデータ

# 入力 期待
0 d6-7b-e1-9e 740631825
1 83-4c-20-10 123805476
2 fb-f7-7e-df 274056813
3 55-33-0f-ff 123456780
4 00-00-00-00 012345678
5 00-00-00-55 021436587
6 40-10-04-01 021436587
7 00-00-aa-00 103254768
8 80-20-08-02 103254768
9 ff-7e-3c-18 876543210
10 aa-55-aa-55 351708264
11 55-aa-aa-55 012345678
12 db-24-db-e7 812543670
13 00-01-00-40 021345687
14 00-00-80-00 102345678
15 01-40-00-00 021345687
16 00-00-00-02 012345768
17 00-00-02-00 012345768
18 00-14-00-00 012436578
19 00-00-01-40 021345687
20 00-80-01-00 102345687
21 c8-00-00-81 120354687
22 05-48-08-14 021435687
23 24-05-00-f0 413205687
24 40-08-14-01 021536487
25 18-c8-80-80 210534678
26 1c-88-52-00 120564738
27 ec-dc-67-62 213468705
28 0a-b6-60-e9 035162784
29 52-d6-c6-c2 120345678
30 47-e7-b0-36 231047658
31 0f-85-91-aa 108263754
32 76-b6-ed-f3 601435782
33 f5-5e-f7-3d 025847163
34 dd-e7-fb-f9 610247538
35 8f-f4-af-fd 583246017
36 bf-fb-cb-f7 105382674
37 e5-fd-ff-ff 512046378
38 ef-df-ef-fe 713205648
39 bf-7f-fd-d7 826437105
40 36-ff-df-de 814527603
41 6f-dd-ff-ff 230685147

C/C++/Java 用のテストデータ