コッホっぽい曲線 2018.4.7

生成ルール : aa
生成ルール : bb
生成ルール : ab
生成ルール : ba

問題の概要

コッホ曲線 のような曲線がある。右図と下表でだいたいわかると思うけどどうだろう:

記号 変換前 変換後
a
b

※ 線分の向きは、いずれも水平に対して 60度の倍数傾いている。
上表の変換ルールの列が、線分を生成するルールとなる。
正の整数ひとつ( n )と生成ルールを与える。
生成ルールによって作られた曲線の、左端からスタートして n 番目の 線分の向きが下表のいずれであるのかを計算せよ:
※ 左端の線分は 1 番目とする。

記号 説明
0 水平な線分
+ 右上がりの線分(左下がりの線分)
- 右下がりの線分(左上がりの線分)
x もうそこには線分はない

入力

入力はこんな感じ:
120,aabb
コンマ区切りで、n と 生成ルール が並んでいる。
n は、普通に10進数で。
生成ルールは、変換ルールが区切り文字なしで並んでいる。

出力

出力はこんな感じ:
0
曲線の向きを区切り文字なしで並べたもの。

補足

サンプルデータ

# 入力 期待 状況へのリンク
0 120,aabb 0 リンク
1 100,a x リンク
2 3,a - リンク
3 3,b 0 リンク
4 9,aa - リンク
5 10,bb + リンク
6 11,ab - リンク
7 12,ba 0 リンク
8 7,aaa 0 リンク
9 17,baa + リンク
10 28,bba - リンク
11 82,bba + リンク
12 35,baa - リンク
13 254,babb + リンク
14 462,abba x リンク
15 226,bbba 0 リンク
16 345,bbba 0 リンク
17 256,aaaa 0 リンク
18 11,aaab - リンク
19 241,abaab - リンク
20 490,aabaa 0 リンク
21 1305,bbbaa 0 リンク
22 1102,ababa - リンク
23 1077,abbab - リンク
24 281,aabaa - リンク
25 2218,abbaaa + リンク
26 4095,bbabbb + リンク
27 2750,abbaab + リンク
28 5573,bbaaba + リンク
29 6644,aaabba x リンク
30 8109,bbbbba + リンク
31 3860,aaaabbb + リンク
32 59222,bbbbbba 0 リンク
33 14956,baabbab - リンク
34 14894,ababbba + リンク
35 3163,aaaaaab - リンク
36 21917,babaaaa + リンク
37 178620,aabbbaab x リンク
38 96709,babbaaaa 0 リンク
39 74116,abababaa - リンク
40 22025,abbbbabb 0 リンク
41 8612,aaaabbaa - リンク
42 153868,bbbabbab - リンク
43 747769,abbabaaba x リンク
44 541589,baabbbbab - リンク
45 787443,ababbbbab - リンク
46 129549,ababaaaaa 0 リンク
47 837323,aabbbabab x リンク
48 140592,bbbbabbab + リンク
49 219669,ababbabbab - リンク
50 500261,bbababaabb - リンク
51 966503,aaabababbb 0 リンク
52 443603,baabaababb + リンク
53 3912,aabbababaa 0 リンク
54 2926358,bbabbbbaba 0 リンク
55 18104279,bbbaababbab - リンク
56 3849980,aaabaaaaaba 0 リンク
57 9276072,baabaabaaab 0 リンク
58 11202113,baaaaabbbba 0 リンク
59 5432578,abaabbaaaaa - リンク
60 17363025,bbaabababbb 0 リンク
61 24147656,baabaabbbbab 0 リンク
62 1078733,bbbaaaabbbbb + リンク
63 38623426,abaabababbaa - リンク
64 19312285,bbaababbaaba + リンク
65 11485959,baaaaababaaa - リンク
66 36831104,babbbbbbabab + リンク

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