Added day 19
This commit is contained in:
parent
f1812b5ee0
commit
f866ad67b3
|
@ -0,0 +1,530 @@
|
|||
3: 97 29 | 2 104
|
||||
45: 97 10 | 2 73
|
||||
114: 44 97 | 90 2
|
||||
78: 2 95 | 97 32
|
||||
7: 97 64 | 2 119
|
||||
118: 97 81 | 2 58
|
||||
64: 97 29 | 2 14
|
||||
106: 53 121
|
||||
4: 2 103 | 97 55
|
||||
54: 2 53 | 97 44
|
||||
58: 33 97 | 130 2
|
||||
91: 104 97
|
||||
102: 104 97 | 83 2
|
||||
128: 2 59 | 97 3
|
||||
79: 98 2 | 124 97
|
||||
117: 2 65 | 97 92
|
||||
1: 75 2 | 115 97
|
||||
40: 2 96 | 97 119
|
||||
8: 42
|
||||
92: 102 97 | 57 2
|
||||
97: "a"
|
||||
93: 2 66 | 97 103
|
||||
36: 2 104 | 97 32
|
||||
2: "b"
|
||||
108: 43 2 | 68 97
|
||||
46: 44 2 | 90 97
|
||||
31: 97 5 | 2 132
|
||||
110: 14 2 | 90 97
|
||||
61: 38 2 | 9 97
|
||||
10: 63 2 | 34 97
|
||||
32: 2 2 | 97 121
|
||||
11: 42 31
|
||||
103: 121 121
|
||||
131: 75 97 | 60 2
|
||||
74: 2 112 | 97 47
|
||||
20: 93 2 | 69 97
|
||||
53: 97 2 | 97 97
|
||||
23: 125 121
|
||||
9: 97 66 | 2 25
|
||||
101: 83 97 | 95 2
|
||||
35: 25 2 | 104 97
|
||||
76: 97 55 | 2 104
|
||||
125: 83 2 | 32 97
|
||||
22: 59 97 | 76 2
|
||||
127: 6 97 | 55 2
|
||||
126: 97 119 | 2 17
|
||||
113: 59 97 | 35 2
|
||||
81: 46 2 | 72 97
|
||||
104: 2 2 | 97 2
|
||||
100: 25 2 | 95 97
|
||||
95: 97 2
|
||||
132: 97 27 | 2 45
|
||||
107: 97 90 | 2 32
|
||||
34: 98 97 | 50 2
|
||||
33: 2 95 | 97 83
|
||||
119: 32 97 | 66 2
|
||||
90: 2 2 | 97 97
|
||||
77: 126 2 | 22 97
|
||||
6: 2 97
|
||||
14: 97 2 | 2 121
|
||||
94: 2 110 | 97 129
|
||||
21: 56 97 | 105 2
|
||||
65: 2 96 | 97 98
|
||||
122: 2 71 | 97 86
|
||||
87: 101 97 | 91 2
|
||||
15: 107 97 | 120 2
|
||||
120: 103 2 | 66 97
|
||||
56: 128 2 | 20 97
|
||||
129: 2 66 | 97 83
|
||||
41: 97 48 | 2 122
|
||||
13: 39 97 | 26 2
|
||||
30: 97 88 | 2 54
|
||||
84: 55 97 | 53 2
|
||||
86: 84 2 | 59 97
|
||||
96: 55 2 | 104 97
|
||||
83: 97 121 | 2 97
|
||||
50: 53 97 | 95 2
|
||||
19: 2 70 | 97 78
|
||||
121: 2 | 97
|
||||
57: 53 2 | 83 97
|
||||
37: 6 97 | 6 2
|
||||
68: 97 53 | 2 83
|
||||
112: 97 23 | 2 19
|
||||
66: 2 97 | 2 2
|
||||
49: 97 90 | 2 103
|
||||
80: 2 97 | 97 97
|
||||
85: 83 97 | 55 2
|
||||
12: 2 35 | 97 51
|
||||
116: 97 67 | 2 77
|
||||
123: 4 2 | 85 97
|
||||
82: 21 2 | 111 97
|
||||
105: 30 97 | 87 2
|
||||
72: 25 97 | 95 2
|
||||
115: 104 2 | 29 97
|
||||
63: 97 37 | 2 36
|
||||
42: 24 2 | 82 97
|
||||
0: 8 11
|
||||
70: 2 80 | 97 25
|
||||
5: 2 74 | 97 116
|
||||
52: 16 97 | 94 2
|
||||
62: 35 97 | 114 2
|
||||
18: 123 2 | 61 97
|
||||
25: 97 97
|
||||
88: 83 97 | 66 2
|
||||
124: 2 6 | 97 80
|
||||
89: 114 97 | 100 2
|
||||
44: 97 2 | 2 97
|
||||
71: 49 97 | 106 2
|
||||
38: 2 104 | 97 90
|
||||
75: 53 2 | 104 97
|
||||
98: 53 2 | 25 97
|
||||
69: 97 95 | 2 95
|
||||
73: 2 1 | 97 7
|
||||
24: 41 97 | 109 2
|
||||
48: 2 40 | 97 113
|
||||
39: 103 2 | 104 97
|
||||
67: 2 15 | 97 62
|
||||
55: 2 2
|
||||
47: 2 79 | 97 108
|
||||
51: 6 2 | 95 97
|
||||
17: 95 2 | 90 97
|
||||
59: 53 97 | 66 2
|
||||
28: 2 12 | 97 131
|
||||
27: 2 52 | 97 28
|
||||
29: 97 97 | 2 121
|
||||
16: 4 2 | 127 97
|
||||
109: 2 117 | 97 18
|
||||
43: 104 97 | 6 2
|
||||
99: 97 89 | 2 13
|
||||
130: 83 121
|
||||
111: 99 2 | 118 97
|
||||
60: 97 44 | 2 25
|
||||
26: 121 44
|
||||
|
||||
abbbbababababbaabbbbbbab
|
||||
bababababaabbbaaaabaabaaaaabaabaaabbbbab
|
||||
baaaabbbabbbbababbbbaabababaaababbaaaabbbbabbbbb
|
||||
abbababaaabbabbaabaaaaaaaaaabaabaaabaabb
|
||||
aabbaababaabbabbaaabaababaaaabab
|
||||
baabaaaaabbabaabaaabaaabbaaabbabbaaabbbbbabbbaba
|
||||
babaabaaabaabaababaabbab
|
||||
bbbbbababbbaaaababaaaaabbaabaaba
|
||||
bbaabaaaaaaabbabbababaabbabbaaaa
|
||||
aabbababaaaabababbbbaabbaaabbaba
|
||||
bbaaababbbbaababbbbabababbaaabaaaaababba
|
||||
bbbbababaabbbabaabbaabbaaaaabbbabbbbbbbbbaaaabaabbbaaababbaaaaababbbabbabbabaaab
|
||||
bbbabbbabbaaabaaabaababbbaabaabaaabbbbba
|
||||
abbbbbabbaabbbbbbaaaabbbbaaaaabb
|
||||
aabbababbabbababbbbbaaabaababbaabbaabbaa
|
||||
bbbbbabaaabbaaaaabaaabbbabbaaaba
|
||||
baaabbbbbaabbaaabbbaabaaaaaabbbbaabaaaab
|
||||
bbabbbaaaabaabbaabbbabab
|
||||
bbbbbabbbabbbababbabaabaabbbbaab
|
||||
aaaabbabbbababbabbaabaaaaabbbaaaabbabbababbbaabbbbbbaaaa
|
||||
bbaabbabbaaabbabababbbbbbbbbabbbaabaaaaaabbababbbbbaaaba
|
||||
bbbaabbbaaabbaabbbbbbaaa
|
||||
bbabbabbbababbbbababbbaa
|
||||
baabbbabaabaaabaabbbbbbbaaabbaaaabbababa
|
||||
aabbaabaabaabbbabbbbabaaabbabbbbabbabaabbbabbbaababbbbba
|
||||
aaabababbbbaaabbbaaaaaabaaaaabaabaabababbbbabaaaabaaaaabbbbbbbba
|
||||
babaaabaaabbbabaabaaabbbababbabbbabbabaaaaabbaba
|
||||
aabbaaaabbbbbabbbbaaabbbaabaabbbbbaaabbbabaabbbbbbbababaabbaaabbabbaaaba
|
||||
aaaabababbaabaaaaaaaaaba
|
||||
babbbbaababaaaabbbabbbabaaababaaabababaaaaabbaababaaaaba
|
||||
abbbabaababababbabbaaaab
|
||||
babaabbbbabababaabaaaabbbababababbaaaabbaabbabba
|
||||
bbabbababbbababbabbaaabb
|
||||
bbabababbbbababbbbbbaaaa
|
||||
bbaaababaaaababbbabbbaba
|
||||
aabbbabababbababbababaaaababbaabbbabbaabaabbabbbbaaaaabb
|
||||
bbbbbababbaabbababaabbbbababbbaabbbabbba
|
||||
abbbbaabbbaaababaaababaaababbbbbbbaaaaaabbbaababaabababb
|
||||
baaaaabbbaabaaabbbbbbaaaaabbaabaaabbaaaabbbbbbbbbbaaaaabbabbbababbabbbba
|
||||
abaabbbaaabaabbbbaaabbababaabbab
|
||||
abbbbababbbbaaababbbbbabbababbaaababbabaabbaabbb
|
||||
babbababaabbbaaabaaabbabbbbaabaabaaaabbbabaabbaaabbbbbba
|
||||
babbabaabaababbabbaabbbbbaabaaabbaabaabbbbaaabbaaabababb
|
||||
babaaaaababbbaaabbabbabb
|
||||
baabaaabbbbababbbabababbabbabaabbbaabababbbbbbabaabaaaab
|
||||
aaaaabbbaababaababbbbababbbabbaaabbbabbbabbaaabbababaabbbaaabbaaaaaabbaa
|
||||
bababaaaabbbbbbbababbbababbbbbaabaabbaab
|
||||
baaabbbbaaaaabbabbababaaabbabbab
|
||||
aaaaabbbaabbbaaabaaaaaabbabbbbbb
|
||||
aababbaabbbabbaaabbbbabbaaaabbbb
|
||||
aabbababbbbbbaabbaaaaaaaabbbbaabbbabaabb
|
||||
bbbbbaabbbbbabaaabbbbbaa
|
||||
babababaabaaaaaabbaaabbaaaaabbbaabbbbbababaaababbbabaaabbaabbabb
|
||||
bababababbaaabbbababaabb
|
||||
bbabaababbaaaaabbabbbaaabbbaaaababaaaaaaaabbbbab
|
||||
bbabbbabbbbbabaabbbabaaa
|
||||
aaabbbaabbaaaaabbbabbabababababbabbababb
|
||||
aabbaaaabaabaabbbbbbaabaaaaabaaabaabbaab
|
||||
aaaabbbabbbbaaababbabbab
|
||||
abbaaaaabaabbbaaaaabbbbbbbababaabbbbaabbabbbababbaaaabaa
|
||||
aaaabbbababababbbaaababaabbabbbabbabbbbb
|
||||
baaaaaabbaababbbabbaabaa
|
||||
aaaabbbaabaaabbbbaaaabbababaaabaaaabbaaabbababaa
|
||||
bbaaaaabbabbaabbbabbbaba
|
||||
aaaabbbababababbababbaababaabaabaaabbaab
|
||||
baaaaaababaaabbabbabbaabaaaabbbb
|
||||
bbbbaaabaaabaabaaabababaabbabaabbbbaaabb
|
||||
aaabbababbbbaabbbbaababbaaababba
|
||||
aabaabaaaaaababbbabbaaaabaaaaabaabbabaaabbabaaabaaabbbababaaabaa
|
||||
aabaaabbabbabbbaaaabbbab
|
||||
bbaaaaaabaabaaaababbaaaaaabaababbbbbbabbbabbbaaabbbabbbbbabbbaab
|
||||
bbbbabaabbabbaaabaaaaaaabbbaaaabaaaabbababbaabbbbbabaabaaaabbbbaaaababaa
|
||||
aaababaabaababbabbaabbbbbbbabaabaaaabaaabaaabbabaaaabaab
|
||||
ababababbbbbbabaababbbabbbbaaabbabbababaaaabbbba
|
||||
babbbbabbaabaababbabbbaabbbaabbbbaabbaab
|
||||
aabaaababbbbaaabbabaabbaababaababbbabaab
|
||||
aabaaabbbbaabbbbbbbaabbababbabaabbaaabaa
|
||||
abbbbbbbaabbbaabbbabbbabbababbaabbababbb
|
||||
aabababababaaaaabbbababbbaabbbba
|
||||
aaaababbabaaaabbaabaabbaaaabaaaa
|
||||
bbbbbabbababbaaaabbbbbabbaabaababbbbbaaa
|
||||
aabbaaaababbbaaaaaaabbaa
|
||||
aaaaaaabaabaaabbabbaaaaa
|
||||
babaaababbaaabbabaabbbbbbaaaababbbaabaab
|
||||
abbabbbaaaababbbababbbabaabaababbbababab
|
||||
baabbbaabbabbbabaabbbaaabbaaaabbbbaaabaaabbaabbb
|
||||
babaabaaaaababababbbbabbbabaabaaaabaaabaababababbbaabbbabbaaaaaababaaaab
|
||||
aabaaabbaababbaaabbbbbaa
|
||||
aaababaaaaaaabbabbbbbbba
|
||||
ababbbabbabaabbabbabbbbababbaabbaabababb
|
||||
baabaaabbaaaaaabababbaababaaabaaabbbbbbbbaabababbbbabbba
|
||||
bbababbababbababbbaabbbbbbbababbabbaaabbbbbbaabbaababbba
|
||||
ababbaaaaaabbbaaababbbaa
|
||||
ababbaabababbaabbaabbaba
|
||||
aaaaabbabbabbbabbbaaabbbababababaaababbabababbabaaabbbabbbaaaaba
|
||||
aabaabaaabbbbabbababbaababaabaaabaababab
|
||||
bbabbaaaaabbbabababababbababbbaaabbbaaaababbbabbbbbbbbabaababaaa
|
||||
aabaaabbbbbbababaaabaaaaaababbaaabaaabaaaabaabaabababaabbbbaaaaabbbabaaa
|
||||
aaabaabaabaabbbabbbbabba
|
||||
aaabbbaabaabbbabbbababbb
|
||||
bbbbbaababbbbaabbbabbaabbbbaaaaa
|
||||
baaaabbbbbabbbababaaaaababbbabab
|
||||
bbaaaaabbaabaabbaabbaaaaabaaabaaaaababbbabaababa
|
||||
babaabbaabaaabbabaababbaababaaaa
|
||||
abbbaababaaabbababbbbaabaaababbbbbbbbbab
|
||||
abbbbbbbbbaaabbbaabbabaa
|
||||
baababbabaaababaababbabababbbbabaababbbaaaabaabbabbaaabb
|
||||
bbababaabbaabbbbbabaabaababbabba
|
||||
bbbaabaaababababbaabaaba
|
||||
aaabaaaaaaaaabaabbabaaabbbaabbab
|
||||
aaaaabbaababbabababaabaabbbaaaaa
|
||||
ababbabaaaaaaaaabaabbbaaaaaaaaabaaaaaaaababbaaaa
|
||||
aabaabababbaababaababbabbaabbaabbbaaaabbababbabbbaaabbba
|
||||
babaaaaababbaabbbbbbabaabaaababababbbabbaabbaaab
|
||||
bbabbbabbbbaaaabaaaabbaaabbaabaabaaaabaa
|
||||
baababbabbabbbaabaabbaab
|
||||
babaabbbabaabbbaabaaabaaabaaabab
|
||||
abaababbbababbbaaaaaabbababaaabbbaaabbbb
|
||||
aaaababbaabaabbabbaaaaaa
|
||||
baabbbbaabababababbbbaaababbaaaabbbbaaababaabbaaaaabbbbbaabbabbbbbaaaaaa
|
||||
bbbbaaabbabbbaaaaabbbbba
|
||||
aaabbbaaaabababaababbaabbbbabaaa
|
||||
baabbbbbbaabaabbbababbaabbbabbabaabbbbab
|
||||
baaababbaabaaabbbbbaaaaaaabbabbaaaaabaab
|
||||
ababbabbabbbbbbbabababbaaaabababbaaabbaa
|
||||
baaabbbababaabbbbaaaaabb
|
||||
bbaabbbbababaabaaaaaaaba
|
||||
aabbbabbbbabbbabbbbbabba
|
||||
abbabbbbaabaaabaaabaabab
|
||||
aaaaaaaaaaabaababbaaaabbaabbbaabbbbabbaabbabbabbababbbaabbaababbaaaaaaba
|
||||
abaabbbbaabbbabbabbbbabaabbabbab
|
||||
bbaabbabbbabbbbaabbbbaabababbbbaaaaaabbabbabbbbb
|
||||
bababaaabaabbbbbbbaabbbaaaabbbab
|
||||
abbbabaabaabaabbbaabbababbbababababbbabb
|
||||
ababaabababababaababbbabbababaabbabbbaababababbb
|
||||
baabbbbbabaabbbbabbbabab
|
||||
ababbabbbabababbbbabbaaaaabbabbb
|
||||
baabbabbbbaabaaabbabbaabbbabaabb
|
||||
babababbbabaabbaabbbbbba
|
||||
abaaaaabbbababaaaabaabbbaaaabaab
|
||||
baaaaaabbabbababbaababbbbaabbabbaabbbbab
|
||||
abbbabaabbaaababaabbbaabaababaabbababbabaababbba
|
||||
bbabababaabbbbaaaabaabaaabaababbaabaaaaababbbbabbbaaaaabbabababaaabababababbaabb
|
||||
aaababaaababababbbbbbababaabbabbabbbbabababbbaba
|
||||
aabaabbbaaaaaabbbbbaababbabbbbba
|
||||
bbabbbabbbaaabbbabaabbbababbababbbbaaabaaaaaabaabaaabaabaabbbbaaabbbabab
|
||||
bbaabbbbbbaabbbbbaaababaaababbabbaaaabba
|
||||
ababbbbbabbbbaabaabaabbaabaabbab
|
||||
bbabbbaaaabbbaabbbababbaaaabbbba
|
||||
baabbbbbababbabababbbaababbabbbaaaaaaaba
|
||||
abbabbbaaabbbaaabbabaabababbabaaabbaaaaaaaaabaabbbabbbbb
|
||||
aaabaaabbaabaabbbaababaabababbbbaabaaaab
|
||||
baabbbaabaabaabbaababaabbbaaabba
|
||||
abaaabbbbbbbabaababaabaaababbbbaaababbaaaabbbabaabaaaabababbbbbbabbaabab
|
||||
abaaaabbaaaaaaabbbbbabaaababbabbabaaabaabbaabbba
|
||||
bbaabbabbbbaabaabbaabbaa
|
||||
abbbbababaabbbaabbbbbabaababbbaabbbbbaaa
|
||||
babaaaaabbbbbbbbbbbbbababbbaabaabaaaaaabbbabaaabaabbabaa
|
||||
bbaaababbabaabbabaabbbbbbababaabaabababbbabbbbba
|
||||
baaaaaababbabaabaaaababaababbaabaaaaabab
|
||||
aabaaaaabababaababaaababaaaabbabaabaaabaabbababbbaaabaaabaababaa
|
||||
babababbababababaaababbb
|
||||
aaabaaabbbababaaaabaabbabaaabbbabaaaabab
|
||||
abbabbbaaaabbbaabbaaaabbbabbbabbabaabbaa
|
||||
bbbbbabbabaaabaabbababaabaabbabbbabbaabbbbbbabbbabbaaaaa
|
||||
bbbbbabaaabbbabaababbbbbabaabbbbbbaaaabbbbbaabbbabaaabab
|
||||
bbabababbababaabababbbbbbbbaaabbabbaabbb
|
||||
aaaaaabbbbbaababbbaaabaabbbaaaaa
|
||||
aaababbabbabbbaababbabbaabbabaabaaabaababbbabbabbbbbbbbbaabaaaab
|
||||
abbbbbbbbaaabababaaaaaabbbabbabb
|
||||
babaabaabaaabababaabbabbbabaabaabbbaabaabbabbbaabbbabaaa
|
||||
bbaabbabbbabaaabaaaaaabbbbabaaab
|
||||
baaababbababbaaaabbbbbba
|
||||
baaababbaaaabaaaaababbaabaabbbbbabaaaaababbaabaaaabbbbaaaaabaaaa
|
||||
aabaabbbbababaaababbabaabaabbaaabbaaabbbbbbbbbbbabbababb
|
||||
aabbbaaababaabbabaabaaaaaabaaabbbabbaaabbababbbbabaababb
|
||||
baaabbabbaaaabaaaabaaababbbbabaaaaabaaba
|
||||
ababbaabbaabbbabbabbababaaaabbbbaabbabba
|
||||
abaabbbbbababaaabaababab
|
||||
baabaaaaabaaabbbaabbaabbaaabbbbb
|
||||
bbbbbbaaaaabbaababbabbabbbbbbbaa
|
||||
abaaabaabaabbbbbbabababbbabbbaaaabaabbbaabbbabbbaabaaaaa
|
||||
bababbaabaaabbababaababb
|
||||
bbbabaabbababbaabbbabbaababbbbbbbbbbbbab
|
||||
bbbbbbbbaabaabbaaaabaaabbbaaabbbbbabbbbb
|
||||
abbabbbabbbbbaabbbaaabbbbaabbbaaabaabbbbbabbabbb
|
||||
baaabaaababaaaaaaabbbabbbaabbaaababbbbbbbaaaabba
|
||||
abaaabbaabaabbbabbaaabbbabaaabbbaababaaa
|
||||
aaaaabbbaabaabbabaabbbbbbbaabbaa
|
||||
aaaabbbaabbbbabaabbabaaaaaabaabb
|
||||
aaabaaabaaabaaabbaabbaaababbbbabbabaaaab
|
||||
aabaaabaaabababaabaaabaaababbaaa
|
||||
bbbabbaabbabaababaaabbbabbbbaabb
|
||||
bbaabbbbbaaabaaaaaaaabbaaaabbbbb
|
||||
abbbabbaababbbbbbbbabaaa
|
||||
bbbababbababbbabaabaabba
|
||||
babbbaaababaabbbbbababababbbabaaabbbbaaa
|
||||
abaaaaabbaaaaaabbabbabbb
|
||||
ababaababbbbbabaaababbab
|
||||
abbbabbbaaaaaaababbbaaaa
|
||||
babaaaaabbaaabbbabbabbbbaabbaaaaabaabbabaaabbabb
|
||||
babbaabbbbbbabaaabaaabbaabaabaaabababbba
|
||||
ababbbbbaaabababbbbabbaaabaaaaaa
|
||||
bbaaaabbbaabbbaababbbbbb
|
||||
abaabbbaabbbbbbbaaabababbbbbababaaaabbaa
|
||||
abaaabaaabbabbbbbabbababbabbbaabaaaaaabaaaaaabaabaababab
|
||||
abaabaabbaaabbbbbbbbbabbaaabababbbaabaaaaaaaabab
|
||||
aaabbbaabaabbbbbbabaabbabbbbaabb
|
||||
bababaaabaabbbaabbaaabbababbbaabbbbabaababaabbaababaaaab
|
||||
aaabaabaaababababbabbbbb
|
||||
bbbababbaabbbaaaaabbbaabbababbba
|
||||
baabbbaaabbabbbbbbbbabaaabbbbaabbababbbb
|
||||
baabaaaaaaabababaaabbbab
|
||||
babababbaabbbabaabbbbaaa
|
||||
babaaababbaabbbbbababaaaabbbaababbaaabaa
|
||||
aabbbabbbabbababaaaabababbbaabba
|
||||
aabbbaaabbabaabbbbbbabbabbbbbbaaaababaaaabbbaaabbaabbabaabbbabaaababaaaa
|
||||
ababaabaaaaababbbaaaaaba
|
||||
bbabbbbaababaababbabbaabbbabbaaaaaaaaaababbbbbbabbabaaababbbbaaabbabbbbb
|
||||
bbaabbabbaaabaaaaaabbbaabaababbbbaababbabababbababaabaaa
|
||||
bbbbbaabbababaabbbabbaabbbababaabababbab
|
||||
baaabbabaababbaaaaabbbaabbbbbaabbabbbaaaabbaaaabaabbbbaa
|
||||
aababababababbaaabaaaaababbabaabaaaabbbaabaaabaaabbaababbbbabbbbbbbaaaaababbbbab
|
||||
aaabababaabaaabbaabaaabbaaabbabbaabbaaab
|
||||
baaabaaabbbbbbbbaaaaaaba
|
||||
abbbabbbbbbbaababbbabaaa
|
||||
babababbbbbbbabbaabaabbababbbbba
|
||||
aaaaabbaaabbbaababaaabbbaabbbbab
|
||||
bbbaaaaaabbabababaabbbaaaaaabbaaaababbbaaaaabababbabaaaaaaaaababbbbbbaabbbabaaab
|
||||
aabaabbabababbbaabbaabbbbbabaabbbbabaabb
|
||||
aaaaaaababbbabbbbababaaababababbaabbbaaabbbabbba
|
||||
babbabaababbaabbbaabaaaabbaaaaababaaabaabaabbaab
|
||||
abbbbbbbabbbbabbaabbbaaaabbbbbaa
|
||||
bbaaaabbbaaabbbbbbbbabbb
|
||||
aaababaababaabbbababbabbabaabbbabaabbaaabbbbbaaa
|
||||
bbbababbbaabbaaabbabaaaababbbaaabbabbaba
|
||||
abbabbbbbbbbbaabaabbaabaababbbaa
|
||||
baababbabaaaaaaaaabbbbaa
|
||||
baaabbabaabbbbbbaaaabbabbbbaaabb
|
||||
bababbaabaabbaaabaabbabbabababbb
|
||||
bbbbbababbbabbaabaababab
|
||||
aaaabbababbabbbabbbbbbbbaaabbaab
|
||||
bbababbaaababbaabbbbbbbbaaaaaababaaaaaba
|
||||
ababbababaabbabbaaabaaaa
|
||||
bbabbbaaaaaabbabaaaaaaabbbabaababbbbbbaababbbaba
|
||||
aaaaabaaababbbaabbbbabba
|
||||
ababbbbaaabbbbbbbaaaabbbbbaaabbbbbbbbbaa
|
||||
babbaaaaabbbabbbaabbbababaaaaabaaaabaababababbab
|
||||
baabaaabbabababbbbbaabbabbbbbbabbbbbbbaa
|
||||
bbabbabaaaaababbaabaabaaaabbabbabbaaaaaa
|
||||
aabbbababaabbabbbabaaabaabbaaababbbbaabb
|
||||
aabbbaabaabaabaaaaaababbbbbababa
|
||||
abaaaaaaabababbbaaabbaabaaabaabb
|
||||
abbbbabbaaaaabbbababbabbbabbbaaaabaabbbbabaabbbabbbaaaba
|
||||
aabbbaaaaaabbbaaaaaaabbbbababaabbbaababaaaabbaaaababaabb
|
||||
aaababaaababbaaaabbbabaaabbababb
|
||||
baaabbbabaaaaaababbbabbbbbbbababbbaabaabbabbabbababbbbabbbabaaab
|
||||
bbabbabaaabbababbaabbbabaabbabab
|
||||
abaabbbabbbbabaabbbaabba
|
||||
babaabbbababaababaabbbbbaababbba
|
||||
abaabbbbabbbabaabbababbb
|
||||
baaabaaaaaaabaaabbbbbaabaaaabbbb
|
||||
bbaaabaaababbaabbbaaababaaaabbbbabbaaabaaaaaababbabaaaaa
|
||||
babbabaaaabbababaabbbaaaabaabbbbbbbaabab
|
||||
bbabaabaaababaababaababb
|
||||
aabbaaaabaabbbaabaaababaabbbbbabbbabbabaaaabaabb
|
||||
baabbbabbaabaabbabaabaabbaabbbbbabababaa
|
||||
abaabbbaabbaabbaaaabbbbababaaabb
|
||||
bbbbaaabbbbbbabaaaaabaaabbbabbab
|
||||
ababbbbaabbbabaabababbbabbababbaaaabaaabaaabaaaabbaaababaaaabbaabbbbaaaa
|
||||
bbaabbababababbaaabbabbb
|
||||
babaaababbaaaabbaabbbbab
|
||||
bbabbbaabaabbabbaabbaaaaaabbbaabaaabbbab
|
||||
abaabbbbabaaaabbaabbababaaaababaabaabbbabbaababbbbbaaaba
|
||||
abbbbaabbbaaababbbabbbaaaaaaabaabababaaababbaabb
|
||||
aabbbabbaaabaaabaabbabba
|
||||
ababbabbababbaababbbbabaabbbaaab
|
||||
ababbbbaabaaaaabaabbaaab
|
||||
babbbaababababbaaaabaaabbaabaaaabbaabaaabbaaabbaaabaabababbaaaba
|
||||
bbbbbbbbbaabbbababbaabba
|
||||
aabbababbaabaaaaababbbaa
|
||||
aabbbbbbababaabaaabaaabbbbabbabaaaaaababaaabbbba
|
||||
aabaabbaaabaabaabbbaabaaaaaabbbb
|
||||
abaaaabbbbbbaaabaaaaabaa
|
||||
baaabbbbbabbabaaababbbaa
|
||||
baaababaababaaababbaaabbabaabbba
|
||||
ababaababbabbbabababbababbaababb
|
||||
baaaaabbbaaababbbabaaaabbabbbababaaababbaaaababbbbaaababbaabababaababaab
|
||||
baabaaaabaaababbbbabbbabababbabababbabba
|
||||
aabbbabbababbabbaabbaaaaaabbbbaa
|
||||
aaaaaaabbbbbaaaabbbabbabbaabababbbaaaaba
|
||||
aabbbbbbaaaabbbabbbabaaa
|
||||
aaaabaaaabbbbbbbbbaabbaa
|
||||
baaaabbbabbbbabbbbbababa
|
||||
ababaabaaabbaaaaabaabaabbbbbaabb
|
||||
babaabbbbabbababbbbbabaaaabbaaabbbbaababaabbaaabbbabaabb
|
||||
baabbbbbbbabbbbabaabbbba
|
||||
aaababaaababaababbaaababbbababbaabbbbbabbbbaabbabbbbbbab
|
||||
baaababbbbaabbbbbbaabaaabbbaabbb
|
||||
baabaabbaaaaabbabaaabbababbaabbb
|
||||
bbabaaaabbbababbaabbbababaaabbabbbaabbabaababbabbaaaabab
|
||||
baabaaaabaaabbabbabbabaabbabbbababbbbbababaabaababbbaaaababaabab
|
||||
abaaabbabaaabaabbbaaaabababbbbaabaaaabba
|
||||
aaaaaabaaabaaabbaaabbaaaaabbbaabaabbaaaaaaababaa
|
||||
bbbbabaaaababbaabaaabbaa
|
||||
ababababbaaaaaaaaaaaaabb
|
||||
aabbaabaaaabbaababaaaabaabaabbabaaaaabaabbbabbba
|
||||
aaaababababbababababbbaa
|
||||
abaaaaaababbbaabaaababbaababbaabbabbabababbbabbabbabbaab
|
||||
bbabaabaabbbabaabaaabaaababaabbbabaaaabababbaabaaabbabaa
|
||||
baabaaaabababaaabbbababa
|
||||
aaaababaabbabaababaaabab
|
||||
baaaaaaaaabbbabababbabba
|
||||
abaababbbabbbaaaaaaaabbbbaaabababaababaaabbbbabaabbbaaaaabbaaaababbaaabb
|
||||
ababbabbaabaabbbababbabaaabaabab
|
||||
aaaaaaabbbabaaaababaabbaabbababa
|
||||
bbbabaabbbbbabaaaaaaaaabbbbaabaabbabaaabaabbaaab
|
||||
ababbabbaabaaabaababababaaaabbbb
|
||||
aaabaaabaabaabaaaabaaabaaabaabab
|
||||
abaaabbbaabbbbbbaaaaabaa
|
||||
bbababababaabbbbbbbbbbbbababaaabaaabbaba
|
||||
babbabaababababbabbbbbbbbaabbabbaaabbaab
|
||||
aaabbbbabbbbbbbababaababbabbaaaaaaababbb
|
||||
bbaaababbbaaabbbababbabbbbbbbbbbaabbabba
|
||||
babaaabaaabbbabbaaaabbabbaaabaab
|
||||
babaaaaaaabaabbbabaaabab
|
||||
baaabbbbababbbbbbabbbaabbabaaaab
|
||||
abababbbababbaaabbaaabababababaaaabaaabb
|
||||
babaabbbababaabaabaabbbb
|
||||
baabbaaaaaabbbaaaabababaaabbbaabbbbaabbababbbbab
|
||||
bbababaaabaaaaabbabbbaaaaaababbb
|
||||
bababbaababababbbbbbaabb
|
||||
babbbaaababbbaaababababababbaaabbbaabaab
|
||||
aaaabbbabbaaabbbbaabbbbbbbaabaaabaaabaab
|
||||
baaaabbbababbaaaaabbbabbbabbbabbbabbbbab
|
||||
bbabbbabaaaaabbbbabaabbbabbabbaa
|
||||
abbbbaababaababbbaaabababbbbaabababaaaaabbabbbaaaaaabbaaabbbbaab
|
||||
ababbbbabbabbbaaaabbbaaababaabaabaababbaaaaabbbbaaaabbbbbabaaaab
|
||||
bababababaaababaababbabbabaabbaaaaabaabb
|
||||
bbaaaabbabbabbbabbaabaaaaaaaabbbaaaabbababbabbabbabbbabaabbbaaabaabaaaab
|
||||
bbaaabbbbaaaabbbbabaaaaaabbbaabb
|
||||
babaabbaaaabbbaaaaabaaababbbabbaabbbbbabaaabbababbaaaababbbaaaaa
|
||||
ababbabbbaabbbaabaaaabaa
|
||||
aabaaabaaaaaaaaabbbbbaaa
|
||||
baabaaabbabaabbbababbabbbababbab
|
||||
abaaabbaaaaaabbabbaababa
|
||||
babbabaabaaaabbbbababbab
|
||||
aaabbbaaaabbbabbababbaaababababbabbbaabbabaababb
|
||||
aabaaabaaabbbabaabbaaabb
|
||||
abaaaabbbaaabbbaababbbbabaababab
|
||||
bbababaabbbbaaabaabbbabbabbbaababbabaaab
|
||||
abababbabbabbabbaabbabaabbaabbaa
|
||||
abaaabbbababbbabbbaababa
|
||||
ababbbabababbabaaaaabbbaabbababa
|
||||
baababbabaababaabbaaaaaa
|
||||
bbbbbaabaaababababaabaaa
|
||||
babbaabbaabbbaaaabbbabbaabbabaaabbabbabaaaaaaaaababbbbaaaabaabab
|
||||
aabababaababaabababbbaaabbaabaaabaaaabab
|
||||
bbabaabababababbbabbbaba
|
||||
aaababbbaabaabaabbaaaabbbbabaaabbbaababb
|
||||
baaaabbbbababaabbabababaaabbbbbbaaabaaaa
|
||||
abbbbabbaabbbabbabababaa
|
||||
aabbbaaabbbababbbbaaaabaabbbaabb
|
||||
ababbbabaababababaaaabab
|
||||
bbaaabbabbabbbaaabbbaaaa
|
||||
bbaabbbbabaaabbaabababbb
|
||||
abbbaababbaabaaaaabbaaaaaaaaabaa
|
||||
baabbabbabaaaaabaaabaaaa
|
||||
aaabababababbbbabbbbbabaabababaa
|
||||
aaaaabbbaabaaabbbbbabaabaaaabbaa
|
||||
aaaaabbbababbbabbababbba
|
||||
ababbbabababbaabbbaaaaabbbbbbbaa
|
||||
bbbaaaabaababaabbaababbaabababaa
|
||||
baaaaaabbbbaaaababbabbaa
|
||||
baabbabbbbababaaabbabaababbbabbaabaaaaababababbb
|
||||
abaaaaabbbbaaaababbabbaa
|
||||
abbabaabbaabbbaaaabbaabbaabaabaaaaababbabaabbabababaabaabbbbbbbbbaaaaabbababbbba
|
||||
aaabaaabbbbabaabbaababaaabbbbbabbaaaaaaaaababaaaaaababbabaaabbaa
|
||||
aaaaaaabbaabbaaababbbaababaabaaababbbbaa
|
||||
bababababbbbbabbaabababbbaaabaaaaaaaaaaaaabbbaaa
|
||||
babababaaaaabaaabbaaabaa
|
||||
abbbbabbbababbaababbbaabbababbbb
|
||||
bbabbbabaabaaabaabbabbbbabbaaaaabbbabbba
|
||||
aabbaaaabaaabaaaabbbbabaaaaaaaba
|
||||
baabbbbbbaaabaabababaabaababaaaaaabbaaaabbbbaabbabbabbaa
|
||||
bbaaaabbbbaaabbabaaabaab
|
||||
bbbbbababaabbaaabbbbbaba
|
||||
bbabbababaabbabbaaaababbbbbbbabaaaaaabaa
|
||||
aaabababaabaabbbabbbabbaaaababaabbbabaaabbabbbbbabaaabab
|
||||
bbbabbaababbababaaaaaaba
|
||||
bbbbbababbabbaabbbbaaaba
|
||||
aabaabbbbbabaaaabbaaababababababbabaaaab
|
||||
baaabbbabbbababbabababaa
|
||||
bbaaababbabaaaaaabababbb
|
||||
bbabbaababbbabbaaaababbb
|
||||
bbabbbbaabababbababaaaab
|
|
@ -1,3 +1,47 @@
|
|||
.#.
|
||||
..#
|
||||
###
|
||||
42: 9 14 | 10 1
|
||||
9: 14 27 | 1 26
|
||||
10: 23 14 | 28 1
|
||||
1: "a"
|
||||
11: 42 31
|
||||
5: 1 14 | 15 1
|
||||
19: 14 1 | 14 14
|
||||
12: 24 14 | 19 1
|
||||
16: 15 1 | 14 14
|
||||
31: 14 17 | 1 13
|
||||
6: 14 14 | 1 14
|
||||
2: 1 24 | 14 4
|
||||
0: 8 11
|
||||
13: 14 3 | 1 12
|
||||
15: 1 | 14
|
||||
17: 14 2 | 1 7
|
||||
23: 25 1 | 22 14
|
||||
28: 16 1
|
||||
4: 1 1
|
||||
20: 14 14 | 1 15
|
||||
3: 5 14 | 16 1
|
||||
27: 1 6 | 14 18
|
||||
14: "b"
|
||||
21: 14 1 | 1 14
|
||||
25: 1 1 | 1 14
|
||||
22: 14 14
|
||||
8: 42
|
||||
26: 14 22 | 1 20
|
||||
18: 15 15
|
||||
7: 14 5 | 1 21
|
||||
24: 14 1
|
||||
|
||||
abbbbbabbbaaaababbaabbbbabababbbabbbbbbabaaaa
|
||||
bbabbbbaabaabba
|
||||
babbbbaabbbbbabbbbbbaabaaabaaa
|
||||
aaabbbbbbaaaabaababaabababbabaaabbababababaaa
|
||||
bbbbbbbaaaabbbbaaabbabaaa
|
||||
bbbababbbbaaaaaaaabbababaaababaabab
|
||||
ababaaaaaabaaab
|
||||
ababaaaaabbbaba
|
||||
baabbaaaabbaaaababbaababb
|
||||
abbbbabbbbaaaababbbbbbaaaababb
|
||||
aaaaabbaabaaaaababaa
|
||||
aaaabbaaaabbaaa
|
||||
aaaabbaabbaaaaaaabbbabbbaaabbaabaaa
|
||||
babaaabbbaaabaababbaabababaaab
|
||||
aabbbbbaabbbaaaaaabbbbbababaaaaabbaaabba
|
||||
|
|
|
@ -0,0 +1,262 @@
|
|||
use std::collections::HashMap;
|
||||
use std::error::Error;
|
||||
use std::fs::File;
|
||||
use std::io::{self, BufRead};
|
||||
use std::vec::Vec;
|
||||
|
||||
#[derive(PartialEq, Clone, Debug)]
|
||||
enum Rule {
|
||||
Terminal(char),
|
||||
NoneTerminal(Vec<Vec<u32>>),
|
||||
}
|
||||
|
||||
fn read_rule(rule: &str) -> (u32, Rule) {
|
||||
let mut parts = rule.split(':');
|
||||
|
||||
let num: u32 = parts
|
||||
.nth(0)
|
||||
.expect("Missing rule Number")
|
||||
.trim()
|
||||
.parse()
|
||||
.expect("Unable to parse rule numer");
|
||||
|
||||
let rest = parts.nth(0).expect("Missing actual rule").trim();
|
||||
|
||||
if rest.starts_with('"') {
|
||||
(
|
||||
num,
|
||||
Rule::Terminal(rest.chars().nth(1).expect("Rule char not found")),
|
||||
)
|
||||
} else {
|
||||
let options: Vec<Vec<u32>> = rest
|
||||
.split('|')
|
||||
.map(|o| {
|
||||
o.trim()
|
||||
.split(' ')
|
||||
.map(|r| r.parse().expect("Unable to parse sub rule numer"))
|
||||
.collect()
|
||||
})
|
||||
.collect();
|
||||
(num, Rule::NoneTerminal(options))
|
||||
}
|
||||
}
|
||||
|
||||
fn match_rule<'a>(input: &'a str, rule_num: u32, rules: &HashMap<u32, Rule>) -> (bool, &'a str) {
|
||||
let rule = &rules[&rule_num];
|
||||
|
||||
match rule {
|
||||
Rule::Terminal(a) => {
|
||||
if let Some(b) = input.chars().nth(0) {
|
||||
if *a == b {
|
||||
return (true, &input[1..]);
|
||||
} else {
|
||||
return (false, "");
|
||||
}
|
||||
} else {
|
||||
return (false, "");
|
||||
}
|
||||
}
|
||||
Rule::NoneTerminal(opts) => {
|
||||
for seq in opts {
|
||||
let mut rest = input;
|
||||
let mut valid = true;
|
||||
for r in seq {
|
||||
let (ok, tail) = match_rule(rest, *r, &rules);
|
||||
|
||||
if !ok {
|
||||
valid = false;
|
||||
break;
|
||||
}
|
||||
rest = tail;
|
||||
|
||||
// Weird HACK
|
||||
if valid && rest == "" {
|
||||
if *r == 11 {
|
||||
valid = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if valid {
|
||||
return (true, rest);
|
||||
}
|
||||
}
|
||||
return (false, "");
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let file = File::open("inputs/day19.txt")?;
|
||||
let mut lines = io::BufReader::new(file).lines().map(|l| l.unwrap());
|
||||
|
||||
let mut rules: HashMap<u32, Rule> = HashMap::new();
|
||||
|
||||
while let Some(line) = lines.next() {
|
||||
if line == "" {
|
||||
break;
|
||||
}
|
||||
let (num, rule) = read_rule(&line);
|
||||
rules.insert(num, rule);
|
||||
}
|
||||
|
||||
let mut input_lines: Vec<String> = Vec::new();
|
||||
while let Some(line) = lines.next() {
|
||||
if line == "" {
|
||||
break;
|
||||
}
|
||||
input_lines.push(line);
|
||||
}
|
||||
|
||||
let count1 = input_lines
|
||||
.iter()
|
||||
.map(|l| {
|
||||
if (true, "") == match_rule(l, 0, &rules) {
|
||||
1
|
||||
} else {
|
||||
0
|
||||
}
|
||||
})
|
||||
.fold(0, |x, y| x + y);
|
||||
|
||||
println!("Answer1: {}", count1);
|
||||
|
||||
rules.insert(8, Rule::NoneTerminal(vec![vec![42], vec![42, 8]]));
|
||||
rules.insert(11, Rule::NoneTerminal(vec![vec![42, 31], vec![42, 11, 31]]));
|
||||
|
||||
let count2 = input_lines
|
||||
.iter()
|
||||
.map(|l| {
|
||||
if (true, "") == match_rule(l, 0, &rules) {
|
||||
1
|
||||
} else {
|
||||
0
|
||||
}
|
||||
})
|
||||
.fold(0, |x, y| x + y);
|
||||
|
||||
println!("Answer2: {}", count2);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::*;
|
||||
|
||||
#[test]
|
||||
fn test_read() {
|
||||
assert_eq!(read_rule("5 : \"a\""), (5, Rule::Terminal('a')));
|
||||
assert_eq!(
|
||||
read_rule("3 : 2 4 | 1 2 3 | 5 7"),
|
||||
(
|
||||
3,
|
||||
Rule::NoneTerminal(vec![vec![2, 4], vec![1, 2, 3], vec![5, 7]])
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_example() {
|
||||
let rule_str = r#"0: 4 1 5
|
||||
1: 2 3 | 3 2
|
||||
2: 4 4 | 5 5
|
||||
3: 4 5 | 5 4
|
||||
4: "a"
|
||||
5: "b""#;
|
||||
let rules: HashMap<u32, Rule> = rule_str.lines().map(|l| read_rule(l)).collect();
|
||||
|
||||
let inputs = r#"
|
||||
ababbb
|
||||
bababa
|
||||
abbbab
|
||||
aaabbb
|
||||
aaaabbb
|
||||
"#;
|
||||
|
||||
let in_lines = inputs.lines().map(|l| l.trim());
|
||||
let mut count = 0;
|
||||
for line in in_lines {
|
||||
let (matched, rest) = match_rule(line, 0, &rules);
|
||||
if matched && rest == "" {
|
||||
println!("Matched: {}", line);
|
||||
count += 1;
|
||||
} else {
|
||||
println!("Not matched: {} {:?} {:?}", matched, line, rest);
|
||||
}
|
||||
}
|
||||
|
||||
assert_eq!(count, 2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_loops() {
|
||||
let rule_str = r#"42: 9 14 | 10 1
|
||||
9: 14 27 | 1 26
|
||||
10: 23 14 | 28 1
|
||||
1: "a"
|
||||
11: 42 31
|
||||
5: 1 14 | 15 1
|
||||
19: 14 1 | 14 14
|
||||
12: 24 14 | 19 1
|
||||
16: 15 1 | 14 14
|
||||
31: 14 17 | 1 13
|
||||
6: 14 14 | 1 14
|
||||
2: 1 24 | 14 4
|
||||
0: 8 11
|
||||
13: 14 3 | 1 12
|
||||
15: 1 | 14
|
||||
17: 14 2 | 1 7
|
||||
23: 25 1 | 22 14
|
||||
28: 16 1
|
||||
4: 1 1
|
||||
20: 14 14 | 1 15
|
||||
3: 5 14 | 16 1
|
||||
27: 1 6 | 14 18
|
||||
14: "b"
|
||||
21: 14 1 | 1 14
|
||||
25: 1 1 | 1 14
|
||||
22: 14 14
|
||||
8: 42
|
||||
26: 14 22 | 1 20
|
||||
18: 15 15
|
||||
7: 14 5 | 1 21
|
||||
24: 14 1"#;
|
||||
let mut rules: HashMap<u32, Rule> = rule_str.lines().map(|l| read_rule(l)).collect();
|
||||
rules.insert(8, Rule::NoneTerminal(vec![vec![42], vec![42, 8]]));
|
||||
rules.insert(11, Rule::NoneTerminal(vec![vec![42, 31], vec![42, 11, 31]]));
|
||||
|
||||
let inputs = r#"
|
||||
abbbbbabbbaaaababbaabbbbabababbbabbbbbbabaaaa
|
||||
bbabbbbaabaabba
|
||||
babbbbaabbbbbabbbbbbaabaaabaaa
|
||||
aaabbbbbbaaaabaababaabababbabaaabbababababaaa
|
||||
bbbbbbbaaaabbbbaaabbabaaa
|
||||
bbbababbbbaaaaaaaabbababaaababaabab
|
||||
ababaaaaaabaaab
|
||||
ababaaaaabbbaba
|
||||
baabbaaaabbaaaababbaababb
|
||||
abbbbabbbbaaaababbbbbbaaaababb
|
||||
aaaaabbaabaaaaababaa
|
||||
aaaabbaaaabbaaa
|
||||
aaaabbaabbaaaaaaabbbabbbaaabbaabaaa
|
||||
babaaabbbaaabaababbaabababaaab
|
||||
aabbbbbaabbbaaaaaabbbbbababaaaaabbaaabba
|
||||
"#;
|
||||
|
||||
let in_lines = inputs.lines().map(|l| l.trim());
|
||||
let mut count = 0;
|
||||
for line in in_lines {
|
||||
let (matched, rest) = match_rule(line, 0, &rules);
|
||||
if matched && rest == "" {
|
||||
println!("Matched: {}", line);
|
||||
count += 1;
|
||||
} else {
|
||||
println!("Not matched: {} {:?} {:?}", matched, line, rest);
|
||||
}
|
||||
}
|
||||
|
||||
assert_eq!(count, 12);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue