[TASK] Solved day 19 (haven't solved day 18 yet tho, coming up!)
This commit is contained in:
578
input/day19.txt
Normal file
578
input/day19.txt
Normal file
@@ -0,0 +1,578 @@
|
||||
77: 30 112 | 20 13
|
||||
121: 43 20 | 123 30
|
||||
42: 57 30 | 101 20
|
||||
30: "a"
|
||||
50: 65 20 | 134 30
|
||||
37: 89 20 | 43 30
|
||||
106: 16 30 | 54 20
|
||||
17: 30 84 | 20 35
|
||||
129: 89 20 | 96 30
|
||||
123: 30 30 | 20 95
|
||||
20: "b"
|
||||
115: 20 70 | 30 93
|
||||
112: 30 90 | 20 123
|
||||
4: 20 55 | 30 5
|
||||
72: 20 90 | 30 123
|
||||
51: 30 20 | 20 95
|
||||
24: 131 30 | 7 20
|
||||
94: 121 20 | 15 30
|
||||
117: 133 30 | 102 20
|
||||
92: 28 20 | 43 30
|
||||
70: 87 30 | 96 20
|
||||
88: 109 20 | 36 30
|
||||
35: 20 36 | 30 61
|
||||
96: 30 95 | 20 20
|
||||
47: 96 20 | 66 30
|
||||
6: 20 55 | 30 123
|
||||
130: 30 29 | 20 88
|
||||
68: 5 20 | 89 30
|
||||
66: 95 95
|
||||
75: 96 30 | 55 20
|
||||
3: 20 90 | 30 5
|
||||
7: 20 53 | 30 123
|
||||
86: 30 5 | 20 53
|
||||
105: 20 87
|
||||
46: 134 20 | 87 30
|
||||
102: 30 111 | 20 103
|
||||
93: 87 20 | 87 30
|
||||
79: 116 20 | 71 30
|
||||
8: 42
|
||||
33: 5 20 | 87 30
|
||||
107: 96 20 | 123 30
|
||||
90: 20 30
|
||||
110: 20 59 | 30 32
|
||||
16: 30 68 | 20 39
|
||||
52: 4 20 | 38 30
|
||||
71: 96 30 | 51 20
|
||||
38: 96 20 | 90 30
|
||||
28: 20 30 | 30 30
|
||||
27: 30 64 | 20 24
|
||||
91: 30 27 | 20 113
|
||||
1: 20 90 | 30 134
|
||||
54: 105 20 | 18 30
|
||||
0: 8 11
|
||||
73: 65 20 | 55 30
|
||||
132: 30 17 | 20 19
|
||||
41: 20 51 | 30 22
|
||||
45: 22 30 | 53 20
|
||||
14: 124 20 | 73 30
|
||||
22: 30 30
|
||||
23: 87 30 | 55 20
|
||||
10: 30 89 | 20 134
|
||||
120: 56 30 | 9 20
|
||||
11: 42 31
|
||||
109: 95 134
|
||||
127: 30 53 | 20 123
|
||||
61: 20 53 | 30 90
|
||||
103: 127 30 | 23 20
|
||||
116: 90 20 | 87 30
|
||||
134: 20 20 | 30 20
|
||||
114: 20 63 | 30 41
|
||||
64: 20 118 | 30 25
|
||||
12: 30 48 | 20 3
|
||||
111: 20 23 | 30 72
|
||||
60: 79 30 | 120 20
|
||||
59: 20 28 | 30 87
|
||||
65: 20 30 | 20 20
|
||||
44: 89 30 | 28 20
|
||||
18: 65 20 | 43 30
|
||||
32: 95 123
|
||||
83: 30 66 | 20 22
|
||||
63: 20 123 | 30 55
|
||||
48: 30 134 | 20 43
|
||||
99: 20 12 | 30 125
|
||||
43: 20 20
|
||||
133: 20 100 | 30 110
|
||||
80: 20 50 | 30 44
|
||||
125: 20 98 | 30 86
|
||||
135: 128 30 | 130 20
|
||||
131: 20 55 | 30 134
|
||||
122: 97 30 | 60 20
|
||||
25: 30 43 | 20 51
|
||||
95: 20 | 30
|
||||
55: 30 95 | 20 30
|
||||
13: 43 20 | 43 30
|
||||
21: 20 76 | 30 80
|
||||
98: 89 30 | 65 20
|
||||
81: 106 30 | 85 20
|
||||
53: 30 30 | 20 20
|
||||
78: 45 30 | 37 20
|
||||
89: 20 30 | 30 20
|
||||
9: 96 30 | 43 20
|
||||
31: 2 20 | 82 30
|
||||
56: 5 20 | 96 30
|
||||
76: 1 20 | 23 30
|
||||
62: 92 30 | 10 20
|
||||
58: 30 22 | 20 43
|
||||
85: 77 20 | 67 30
|
||||
26: 30 58 | 20 6
|
||||
101: 30 81 | 20 91
|
||||
29: 83 30 | 47 20
|
||||
126: 20 53 | 30 55
|
||||
2: 122 20 | 135 30
|
||||
15: 5 30 | 51 20
|
||||
34: 20 37 | 30 116
|
||||
82: 30 104 | 20 132
|
||||
19: 40 20 | 62 30
|
||||
108: 21 20 | 119 30
|
||||
36: 30 22 | 20 87
|
||||
104: 69 30 | 99 20
|
||||
100: 20 7 | 30 61
|
||||
39: 89 20
|
||||
87: 30 20
|
||||
113: 52 30 | 34 20
|
||||
5: 30 30 | 30 20
|
||||
40: 4 30 | 107 20
|
||||
97: 20 26 | 30 78
|
||||
67: 30 131 | 20 126
|
||||
118: 20 134 | 30 66
|
||||
124: 96 30 | 22 20
|
||||
128: 30 114 | 20 14
|
||||
119: 30 49 | 20 74
|
||||
84: 129 30 | 33 20
|
||||
74: 30 6 | 20 46
|
||||
49: 30 38 | 20 75
|
||||
57: 117 30 | 108 20
|
||||
69: 20 94 | 30 115
|
||||
|
||||
aaabbaababbababbabaabbbaaabbbbaa
|
||||
baabaabaaaabbabbbbbaaabb
|
||||
aabbbaaabaaaabbbbaabbaaa
|
||||
bababbbabbabbaaaaabababbbbaaaaaaaaabbaabaaaaabababaaabbaababbaab
|
||||
baababbbbbbaaaababaaaababbabbaaaaabbbbbbbabaabaaaaabbbbb
|
||||
abbaaabababbaaaabbaabababbbabbaa
|
||||
aaabaaabaaabaaaaaaabbbab
|
||||
abaaabaabbababababaaabba
|
||||
aabbbbbbaaabbaaaabbabbbb
|
||||
aabbbabaaaababaabbbababb
|
||||
aaabbabbbaabbabbabaabbba
|
||||
bbbaaaabbbabbbaaababbaabaaabaaaabbbbabba
|
||||
babbbbaaaaabaaaabaaababbbabbaabbbaababbaabaaabab
|
||||
aabaaaaabbaaaaaabbababbbbabaaaaabbaaaabb
|
||||
bbbbababaaabbaaaaababbaa
|
||||
baabaaabbbbbababababaabbaaabbabbaabbbaab
|
||||
bbaabbabbbabbbaababbbbbabaabaabbbababababaaabaaa
|
||||
baabbbbbaaaabbbabbbbbbbb
|
||||
bbabbaabbbabbaaabbbaabaabaaabbbbaababaaa
|
||||
babbbaababbbabbababaabbb
|
||||
aabbbbbabbbbaaaabbbaabababababbb
|
||||
aabbabaababababababbaaabaaabaabb
|
||||
aabababbaaaaaaaababbbbaaabaaaaaa
|
||||
abbbababaaabbaabababababbaaabbbbaaabaabb
|
||||
baabbabaaabaaaaabbbbbaabababaaaa
|
||||
abbbbabbbababbababbaabbbbaaaabba
|
||||
abababbababaaabbabaabbbb
|
||||
aaaabbbaaaaaabaabaaabbba
|
||||
bbaabaababaaaabbaaaaaabb
|
||||
aaabbabbaabaabbbaabbaaba
|
||||
aaaaabaabbaabaababbabaaa
|
||||
bbabbbbabbbaabbbabbbbaab
|
||||
aaabbabbbaaabbbbbaabaabbbabababbaaaaaababbbbaabb
|
||||
abaabbabbabaaabababaababaabbabbbabbbbaaaaabbbbaabbaaaaababbbabbaabbbbbabaabaabbabbbbbaabaaaabbab
|
||||
bbbaababaaaabababaaaaaab
|
||||
bbbbabbbaaababbbaabbbbbb
|
||||
babbbaabaababbbaabbbbbaa
|
||||
abababbabbbabbabbbbabaaa
|
||||
abaabaaaaabaabbabaaabbbbbbababab
|
||||
abababbaaabababbbababaaa
|
||||
baaabbabbbbbbabababbaaababbbbabbbaababbbaabbbbabbbaaabbabbbbbbab
|
||||
aababbbaabababaaaaaaabab
|
||||
baaabbababbaaaababbabbbabaaabaaabaabbbbaaabbabaabbbaabbbabbabbabaabbaaab
|
||||
baaaabaabbababbbbbbbbababaaabaab
|
||||
bbabbaababbabaabaaabaaabaaaabbaaabbbbaab
|
||||
bbbaaaaaabbaaaaabaaaaaaa
|
||||
bbabbbaababbbaaaababababbbaabaabbbbbababbaaabbbaabbaaaabbaaaaaaa
|
||||
abbbbabbaabbabbbaaaaabba
|
||||
babbababbaaabbabbabbaabaaaaaaaba
|
||||
bbbbababbababbbbabbababbaaababab
|
||||
abbaaaababbabbbbbabbaaabaababaab
|
||||
aabbbbbbabaabababbbabaaa
|
||||
aaaaaaaababaaabaabaabbaaabbabbbaabaaaaaabbaabbba
|
||||
abbbababaaaaabaaaababbbaaaabbaaa
|
||||
bbbbbabbaabaaaaaaabaabbaaaaabbaa
|
||||
ababbabababbbaabababbbaaabaabbbb
|
||||
ababaabaabbabbbabbbabbbabbaaaababaabbaaa
|
||||
ababaabaaaababbbbaaaabaabababbaaabbababb
|
||||
aaabbbaabaabbbbbbaaababbaaaabbbabbbbbbbb
|
||||
aaababbbaaaabaabbababaab
|
||||
aabbbabaababbbabbaaaabab
|
||||
abaabbbbbbabaabaaababababbbabaabbaabbaabaabababbabbaaaababaaaaaa
|
||||
abbaaaababaaaabaabbbbbabbbaaabaaaabbabaa
|
||||
babaaaaabbbaabababaaabbb
|
||||
abbbbbbaabaabaaabbaaaaaabbabbbaabbabbbbbaabbbbababbababb
|
||||
baabbababbbabbababbbbbaa
|
||||
bbabaababbbabbabaabbbaab
|
||||
ababbbabbbbbabaabaaaaabb
|
||||
babbbbbbbaaaabbbabbbbaba
|
||||
babbabaabaaabbababaababaababaaab
|
||||
aaaababaaaababaaabbbabbaabbaaaabaaaabbab
|
||||
abbaabbbbbabbabbababbbbbbbbabbaabaaaababbbbaabbabaaaabbbbabaaaabaaaabbab
|
||||
baabbbbabaabbbbabaaabaaa
|
||||
aaabbaaaaaabbabaabaaaaab
|
||||
abbabaabbaaababbaabbabab
|
||||
aabaabbbbaababbabbbbbaaabbbaaabb
|
||||
aaaaaaaaaabbabbbaabaaabbabaaabababbbaababbaaabababbbbaaaaaabbbababaaaaaa
|
||||
babbabababaaaababaaaabba
|
||||
abbaaaaaaaabbaaabbbaabaaabaaaabbabaabaaabbbaabbbbbbaabbbbbaabababababaab
|
||||
bbabaababaabbabbbbaaaaba
|
||||
bbabbbaaaabaaabbbbbabbbaaabbbbba
|
||||
babbbaaaaabbaaaababbbabb
|
||||
bababbabbbaabaabbbbaaaaabaabbbab
|
||||
bbbaaaaabababbaabaaaaaab
|
||||
babababbbaabaaaaaaaabbbaabbbabbb
|
||||
aaaaabaabbabbababbaabbba
|
||||
aabababbabbabbaabbbaabbb
|
||||
baaababbaabbaaaaaabbbabb
|
||||
bbaababbaaabbbaababababbaabbaaabaaababab
|
||||
baaaabaaababababaabbabbbabababbaaababbbbbbbaabba
|
||||
babbbbabbbabbababaabaaabbbbaaaabababaaab
|
||||
baaaaabaaabbbbaaabbaabbaabaabbbabababbabbaaabaaaaaabaaababaabbabbabaaaaaaaabbbbb
|
||||
babbbaaaabbbbbbbaaaababbaabbbbbbbbbaaaabbbabbbbabaababaa
|
||||
baabbbbbabababbaabababaabaabaabaaababbbbbbaabbaa
|
||||
babaaababaaaaabaaabaabbabaaabbabbaaaabaabbbaabbbbbabaaabaaaaabbabbbabaab
|
||||
abbabaaababaabaaabaaabaaababbbaababbababbaaabaaababbaaaa
|
||||
ababaabaabbababaaaabbbbb
|
||||
baababbabaabbbbbbbbaabaaababaaabbbbbbbaa
|
||||
aabbaaabbbbababbababbaaa
|
||||
babaabbabbbbbabbabbbbaba
|
||||
abbbabbbbaaababbabaabbaabbbabaaa
|
||||
babbbaaabaaaabaaaaabaaabbaaabbbbbabbaabaabaaabba
|
||||
bbbbabbbbabbaababbabbbbb
|
||||
bbbbaaaabaabbbabbbbabbaaaabbbaab
|
||||
babbbbbababababaaaaabaaa
|
||||
babbaabbbabaabbababaaaab
|
||||
abbbabbabbababbbaabbbbaa
|
||||
aaabbaababbbabbbbbaabaaa
|
||||
babbaabaabaabaaaaaaaaaaabababbba
|
||||
aabaaaababaaaabaababbbababbbababaabababa
|
||||
bbbabbbbaaababbaabbbaaaabbbbbaabbabbbbbaaaabbbbaabbbaabb
|
||||
abbabababbabbaaaabaabbba
|
||||
abbaaaabbaaaabbabbbababaabbbabaa
|
||||
abbaaabbbbaaababbbbaaaabbabbbbbabbbababbaababbab
|
||||
baaababbababaababbbbabaaaabbababbaaabaaa
|
||||
babbaaabbaabbbbbaabaaaaababbabaabaaabaabaabbbabbbabaabaa
|
||||
aaababbbaaaababaababbaab
|
||||
baaaabbbbaabbbaaabbaabbb
|
||||
babbbaabaabbabababaaaaabaabbaabababaabbb
|
||||
abbabbbbabababbababbaabaaaaaaaababbaaabbabbbbbaabbbabbabbbbababb
|
||||
baaabbbbabbbaaaabbbaabba
|
||||
abababaabaabaabbbbbabbbaaaabbababaabbbaabbababab
|
||||
aaaabaababababbaaababbbabbabbaabaabbbbabbbbbbbaaabaaaaaa
|
||||
aabaaabababbbaabbbbbbbaa
|
||||
aabaaaabbaabaaaaaaaaabba
|
||||
babababbaabbbaaaabbaaaba
|
||||
abbabbbaaaababaaaabaaaaaaabbbbbbabaaabbb
|
||||
bbbaaabaaabaababbbbaabba
|
||||
bbabaababbbbbabbaaaababaaabaaaaaabbbbaaabbaabaaa
|
||||
aaaababbbababbababbbbbbaaaabaaaaabbaaabaabbbbbaabababaab
|
||||
baabbbbbaabaaaababbabbaaaaaabaaa
|
||||
bbbbbaabbbbbabaababbbaaabababbbbbbbaaaaaabbbbaba
|
||||
ababbaabaabbaabbaaaabbbb
|
||||
bbbbbaabaabbbbbbbaaaaaaa
|
||||
bbbbbaaabbbbabbbaabaaabbbabaabbb
|
||||
bbbbbaabaaababbaaaabbaaabbbbababbabaabbabbbaaabbaaaaabbb
|
||||
baabbbaabaabbababbababbabaaaabab
|
||||
abaababbabbabbaaababbbba
|
||||
aaabbaababbabababababaaabbabbbbb
|
||||
aaababbbbabbabaaabaabaaabbbbaaba
|
||||
baaababbbabbaaabbaabaaaabbbababb
|
||||
abbbbbbaabbbabbaaabaaaabbbababbbaaabbbab
|
||||
bbbbbababbbaababbababaab
|
||||
aaaababababbbaaaabababbb
|
||||
bbabbaababbababaaabaaababbbbababbbbbbbabbbaaabbb
|
||||
abbbbbbbaabaabbaaabbbaab
|
||||
bbbaababbbbbbaaaaaaabbab
|
||||
babbbbbaaaaababbaaaaaabb
|
||||
baabbbaabaabbababbabbabb
|
||||
baabbababbbaababaabbabba
|
||||
baababbabaaabbabbaaababbbabbbbbbbaababbbbabbbabbbababaab
|
||||
bbaaabaaaaababbaaaabbbab
|
||||
babaabbaabbbbbbbbabaabbb
|
||||
ababaabaaaabbbaaabababaaaabaaabbbaaaaabb
|
||||
baabbabbaabbaabbaaaabababbabaaab
|
||||
aabaabbbaaababbbabbbbaab
|
||||
bbbbbaaaaaabbabababbbbaaaabbbabb
|
||||
baaabaabbaaabbbabaabaaababaabababbbababababbaaababaabaabbbbabbabaaabbabbaabbaaabaaabaaab
|
||||
aabbbbbbaabaaabbbbabbaaabaaaaabaabbbaaaababaabaa
|
||||
aaaabaabbababbabbbbabbbbaabbbababbbaaabaababaaaaabbabbab
|
||||
babaababaaaabaabbaabaabbbaabbababbabbbbb
|
||||
bbbaababbbbaabaaabbbabbbabbaaaba
|
||||
baaaabbabbbbaaaaaaaaabbbbbabababbbbababaaababbbabbababababbbbbba
|
||||
abbbabaaabaabbbaaabaabaabbbbbbab
|
||||
babaaaaabaabaabaaaabaabb
|
||||
aabababbabaabaaaaaaabbbabbaabbabaaaabbabbaaabbba
|
||||
ababbbabbbbbbaaaaaabbaababbbaaaaaaaaabba
|
||||
baabbabbbbabbaababbabbaaabaabbba
|
||||
bbaaababbabbabbabbabbaabaaaaaababaabaaabaababaaa
|
||||
baabbbbbbbbaabaaabbabaaa
|
||||
abbabababaaabbabbaaaabab
|
||||
ababbababaabaaabaabbbbbbbbbabaab
|
||||
baabababbaaaabbababbaaaaabaabbaa
|
||||
abbaaabbabbabbabaaaaabbbbabbbbaaababbbbbaababbabbaababbaabbbabba
|
||||
abbbbababbabaabaabbaaaabbaabbabaaabbaababaaabaababaaaabbabababba
|
||||
babbaaabbbabbabaaaabbbab
|
||||
aabbbaaaabbbbabbaaabbbbb
|
||||
baababbbbaaabbababbbabbbbbaaabaaaabbaaaaaaaabbab
|
||||
babaabababababbababbbbbaabbabaaa
|
||||
babaaabaaaabbabbaabaaababbaabaabbaababbbabaabbbabbbbabbaabbaabaa
|
||||
baababbabababbabbbabbaabbaabbbaabbbababb
|
||||
baabaabbababaabbaabbaaaaaaaaabba
|
||||
aaaababbbabbaababbbbaaba
|
||||
bbbabbbaaaaababbaabbbbaa
|
||||
abaaaabaaaaaaaaaaaabbaaaabaabbab
|
||||
ababbaabbabbaaaabbbbaaab
|
||||
baaabbbbabbbaabababaabababaabbbb
|
||||
baabaabaaabaaabbbbbaabaaaabaababaabbbbba
|
||||
bbbbabaababbbaabaaaaaabbbaaababa
|
||||
abbabababaabbabbababbabb
|
||||
babababababaaaaaabbbbbaa
|
||||
aabbbbbbbabaaaaabbbaaaaaabababbbabbbaabbababbaaa
|
||||
babababaabaababaababaaab
|
||||
baababbabaabbbbaaaabbbaabaaabbabababaababaaabaabababbbbbbbabababbaaabbaa
|
||||
abbbaabaaabbbabaaaabbbbb
|
||||
bbabbabaabbabbbaaabbabbbaababbababbabaaa
|
||||
abbaababaaababbbabbbbbab
|
||||
aaababbababaaabbabbababb
|
||||
baaaaabababaaabbbaabbbaabaaabaaa
|
||||
aabaaaabbbbbababaaababbb
|
||||
abaaaabbbabbabbaabbbbbbbabbaabbb
|
||||
bababaaababbbbaaaaaabababaaaababbaabbbabbaaabbabaabaaaaababaaaabaabaabbabbbaaabbaababaab
|
||||
aabbabbbabbaaaaaaaababab
|
||||
bbbaaaaaababbaabababbbba
|
||||
ababababbbababbbaaabbaabbababbbabbaabbaa
|
||||
aabbabaabaaabaabaaabaabaaaabaabbbbababbaaaababababbbbbabbbaabaaababbaabababaaaabbaaaaaba
|
||||
abbbbabbbbaaaaaabbaabaaa
|
||||
aaaababbbabaaabbbabaababaaabaaabaaaaabbb
|
||||
ababbbaaabbabbaabbaaabbb
|
||||
abaaaabbbaabbbaaaaabaaabbbabbbba
|
||||
aaabaaaaaaabbabaabbabbaababbbbbaabaabbbb
|
||||
aaabbabbbabbbaababaababbaaaaabbbaababbbb
|
||||
aabaabaabaaaabbabaaabbaaabbabaaaaabbabbbbbabaaaabbbababbaabaabbb
|
||||
abaabbaababbaaabbabaaabbbabaabbabbabbabaabbbbbabaababbaa
|
||||
ababbbabbbbabbbbbaaaabbbabbabbbaaaaaaaab
|
||||
abbbabbabaaabbababbbababaaabbaabaaaaabba
|
||||
abaaaabababaaaaabbaabaabaababaaa
|
||||
bbbbbbabbabbbbaaaaabbbabbbaaaabaaabaabab
|
||||
bbbaaaaaabbbbbbbaabababa
|
||||
baabaaaabbbabbbaabababbb
|
||||
aabbbabaaaaaabaabbbabbaa
|
||||
babaaabbaaaaabaaabbbbbbbbabaaabbaaaaabab
|
||||
bababbbbbaabbabbbbaaabbb
|
||||
bbaabbbaabbabbbbaabbbabb
|
||||
abbabaabbabbaabaaababaaa
|
||||
bababbaabaabaabbabbabbab
|
||||
bbbaababbabbabaabaabbbbabaaaaabbbbbbaaab
|
||||
bbbaababbabbbbaabababbba
|
||||
babbaabbbabbabaaaabbabbbbabaaaabbbbababb
|
||||
bbaabaababaabaaaababaaababaaabbaababbbbb
|
||||
abbbabbbaababaaaaaabbabbabababaaaaababaaaaababbabbaababb
|
||||
abbaaabbbaabbabbabaabbaaaababbbabbaabaabababbbabaaabbbab
|
||||
abbbaaaaaabbbaaabbaaabbb
|
||||
bbbbbabbabbabbaaabbabbbb
|
||||
baabbabaaaaabababaaaaaab
|
||||
aaaababbbbbabbbaaaababaabababbbb
|
||||
abbbabaabbbababbbbabbbaaaaaaabaaaaaaabbbaaababab
|
||||
baaabbbbaaabbaabbaaabbababbaababbbbaaaba
|
||||
bbaababbbbbbbababaaababbabbabbbaaabbbabaabbbabbbbaaabaabaaabaaba
|
||||
aaabaaaabbbbabbbbabbbabb
|
||||
bbabbaababaababababbabbb
|
||||
babbaaababbbbabbabbbaaabaabbabba
|
||||
bbabbaabbabbabaababaaaaaaababbabbaaabbaababbbbbaababbbabaababbabbbabbbaabbbabbbbabaabbab
|
||||
baabaaaaabaaaabbabbbbbbbaabbbaaabaaabbabbabbabbaaaaaaababaaababaaaaaabbb
|
||||
bbaabbabbbaaabaabbaababa
|
||||
aababbbabbbaabaaaaabbbab
|
||||
baabbbbaabbabbaabbaaaabb
|
||||
bbabbaabbaaaabaaaaaabbbb
|
||||
baabaabaaabaabbaabababbb
|
||||
abaabbaabbaabaabbbaabbabaaabbbaaaaaaabbb
|
||||
bbbbbababbaaababbaabbaaa
|
||||
bbaabbabbbabbaaabaabbbab
|
||||
bbbaaaaaabbbbbbbaabbabaa
|
||||
bbaaababbbabaabbaabbaaaaaaabbbbbbaaababaabbbbbbbbabaabaaaabbabab
|
||||
aabbaabbbabbaaabaabbaaaabbababab
|
||||
abbbabbaaaababbaabbaaaaa
|
||||
aaabbabbbbaabaabbbabbaaaabbaaabbbabbbaba
|
||||
abaabaaababbababaaababbbaabbbabb
|
||||
abaaaabababbbbbbaaabaaaaabababbaaabbbbab
|
||||
abbaabbbbbabbbbabbbaaababbabaaabbbabbbab
|
||||
babbbbbbbabaabbabaababbaabaabaaaabbbabaababbbbab
|
||||
bbbabbbbaabbaaaaabbaabaa
|
||||
bbbbbaaababababbbaaababa
|
||||
baabbbaabaabbababbbaababbbababbbabaabbbb
|
||||
bbaababbbabaaabbabbbaaab
|
||||
baabaaaaabbaaaaabbbaaaabbabbabbaaabbbaaaaabaabbbbbbbaaba
|
||||
abbbababaaaaabaaababbabb
|
||||
aaaaabaababbaaabaaaababbbaaabbbbababaaaa
|
||||
ababbaababbabbbababbabbabbabbaababaaaaabbbbbaaaabbbaaaba
|
||||
baaabaaabbbbabaaaababbaabbbaaabaababbabbaaabaaba
|
||||
bababbaaababababaabbabbbaabaabaaabaaabbaabbbaaaaabbbabaa
|
||||
abbaaabbabbaababbbaaaaaabbaaaabb
|
||||
bbaabaabbbbaaaaabababababbabbbaaaaabbbba
|
||||
bbaababbabbababaabbbaababbabbabbbbabaaab
|
||||
abababaaabbbaaaabababbaaabbbaaababaaaaab
|
||||
abbabaababbbbabbbbaabbbb
|
||||
ababbaabbabbabababaaabbb
|
||||
aababbbabababaababbbbbbaababbabbaababbbbbbbbaaaababbaabbbaaaaabb
|
||||
abbbaaaaaabababbababbbba
|
||||
babbabaaaaabbbaabaaabbaa
|
||||
aabaaababaabbbaaaabaaababaaababbabbbaaaaaaaabbaa
|
||||
bbaabbabbbabbabaaabbaaba
|
||||
bababbaabbbaababbaaaabaaabbbbaab
|
||||
bbbabbbabbbabbababbbaaab
|
||||
abbbbbbbaabbabbbaaaabaabaabbaaabaaaabbbb
|
||||
bbbbbabbbaababbbaabbaaba
|
||||
ababababababababababbabb
|
||||
baaaaaaabbabbaababaaabbb
|
||||
bababbaaabbabababababbabaabaabbabbaababaababbbbb
|
||||
bbabbaaabbbbaabaababababaabbbbabbabaabbbbaabbbaabbaaaababaabaabb
|
||||
abbababaabaaaabbbabaaaab
|
||||
bbabaabababbaabbbabbbbbbabbbbaabaabaabaa
|
||||
bababbaaaabaaaaabbbbaabb
|
||||
bbaabbabaabaabbbbabaabbaababaaababbaaaab
|
||||
babaaabaaabaaaabababaabababbbaba
|
||||
babbbbbaabababbaaaabbaabbabbabaabbaabbbb
|
||||
abbababaabababaababaaababbbabbaa
|
||||
aabaaaaaabbabbaabbabaababaababbaabaaabbb
|
||||
abaabbaabbbbbaaaabbaabba
|
||||
babaabbabaabbbbbbbabbbaababbbaabbbbababbaabbbaaabababbbbbaaababaabbbabbabbaaaabbaababaabaaaabbba
|
||||
aaaabbbabbaaababaaabbaaaabababaababbbbababbaabbb
|
||||
baabbabaabbaababaabbabab
|
||||
ababaabbaabaaabaabbababb
|
||||
aabbbababbaabbabaaaaabaa
|
||||
ababaababbbabbbbbaaaabab
|
||||
ababaababaaaaababbbabbbaabbbabaa
|
||||
abaabbaaabbabababbbbabba
|
||||
babbbbbabbaaaaaaaaaaabab
|
||||
bbabbababbbabbbbababbbbb
|
||||
abaababbabbaaabbbbbbababbbbbaaaa
|
||||
abaaaabbbababbbbaababbbb
|
||||
baabaababababbbbababbabb
|
||||
baaaabaaaaabbabbabbabababaabbababbbbabaaabaaababbabbaaaa
|
||||
aaaaaaaabbbabaaabbabbabaaabbbbaaabaaababababbabbabababab
|
||||
bbbaaaabaaabaaaaaabaabbbbababaab
|
||||
baabbbbabaaaaabaabbbaabb
|
||||
abaaaabaabbaaaaaabaababbbaaabbba
|
||||
ababbbaabbbaabaaaaababab
|
||||
aaababbabbbbbabbabbbaaaabababaab
|
||||
bbbbabbbbababbabaabbbbba
|
||||
baaabbbbbbbbbaaabbaaabaaabaaabbaaababbab
|
||||
bbabbaabababbbbbbbbaaabbabbbaaba
|
||||
aaabbababaabaaabbaababbbbbaabbababbaaabbbbabbabbaabbbbab
|
||||
abbaaaaabbabbaaaabbababb
|
||||
baabaabbbaabbabababbaaabbaaaaababaaaabbabbbbbbaa
|
||||
babbaabaaabababbbabbabaaabaaaaabbbaaabbb
|
||||
babababbaabbaabbbbbbaaab
|
||||
babaaababbbaabaaaaaabaabbbbaaaabababbaaa
|
||||
aaabbbbbbbabababaabbabba
|
||||
baaabbaaaaabbbbaaababbaaabbaaaaabbabbbbbabbbabbbbbbaaaaabbaaaababaaabbbbbaabbaababbbbbbababbaaaa
|
||||
ababbababaabbabaababbbababaababbabbbaaaabbbbbbaaabbababb
|
||||
babababababababaaaaabbab
|
||||
aaabbaaaabbbbabbabaaabbb
|
||||
babbbaaabababbaabaabaabaabbaababaaaabaaaababaaab
|
||||
babaaaaaabbbbabbbbaabbba
|
||||
bbabbaabaabbbaaaaabaaabaabbbababaabbaabaababaaaaababbbba
|
||||
aabbbabaabbabbbababbaaaa
|
||||
baaaabaababbabaabbbaabbb
|
||||
aaabbabaaaabaaabaabbaaaabbaabbaa
|
||||
abaabaaaabbabbaabbaababbabababbabbbbaabbbbaabbba
|
||||
bbbaaaaabbabbabaabaaabaa
|
||||
ababbbabbabbaababbaabbaa
|
||||
aaabbaaaababbbabbaabbaaa
|
||||
aaaaabaaabbabbaaabbbbaab
|
||||
bbbaaaababaabaaabbbabbbabaabaaaabaabbbaaabbabaabaaaabbbb
|
||||
babaaabababbbbbaaaaabbaa
|
||||
baabaabbbabaabaabbaaaaab
|
||||
baababbbbaaabbabaababbbb
|
||||
bbaababbbbababbabbabbbbb
|
||||
abbaababaabaabbaabbbbbbbbbaabbbbbbaababa
|
||||
babaaaaaaaababbaabaaabab
|
||||
babaaaaabbaabbaabaabbaabbbaabaaabbbbaabbbbbaabba
|
||||
bbbaaabaaabbbabbabbaabbb
|
||||
bbbbabababbaaaaaaabbbaaabbbbabaabbaaaaaabbbbaaaa
|
||||
bbbaaaaaabaabaaabaaababa
|
||||
aaabbababaaabbabbabaaaaaaaababababbbbaab
|
||||
babbbbbabababbababaaabbb
|
||||
aabababbaabbabbbbbbbbbba
|
||||
abbabbaaabaababbbabbabbaaaaabaabaabbbbba
|
||||
babbabbaabababbabababbbbaaababaaabbaaabbaabaabaa
|
||||
aaaaaaaabbbabbbaabaaabba
|
||||
baaaabaaabbbbbbaaabaabbbbbbbaaaa
|
||||
abbbaaaabababaaabbbbbabbabaaabaaaaababbbabaababaabaaaaaa
|
||||
abaababbabbbbbbaaabbabbbabbaaaab
|
||||
abbabbbababbaaabbbabaaaabaababaaabbaabba
|
||||
aaaabaabbbababbbbabbbbaabbbabbababaaaaab
|
||||
abbaaabbabaababbbaabaababaaababa
|
||||
abababababbaaabbbaaabbababaabaab
|
||||
baaabbabaabaabbaaabababa
|
||||
bbaaabaaaaaaabaababbaabb
|
||||
ababbabaaabbabaaaabababa
|
||||
babbbbaabbbbbaabbbaababa
|
||||
babaaaababaabbababbabbbaabaaabababbabbaaaabbaabb
|
||||
baaababbaaabaaabaabbabbbbaaaaaab
|
||||
abaabbaabbabbaabaabababbabbabbbb
|
||||
bbbaababaababbbabbababab
|
||||
baababbabaaaabaaabababbababaaaab
|
||||
babbaababbabaaaaababbaaa
|
||||
aababbbaaabababbaabaabab
|
||||
bbaabbabaabbbbbbbbababbbaaaabbbabbbbaaba
|
||||
bbaaababbbaaabaabbbaaabaababbbbababbbabbababbbbaabaabbba
|
||||
bbabaaaaaabbbababbaaabbb
|
||||
baaaabaabaabbababaabaaababbbaabbbbabbaabbbbabbabaaababaaaabbaaaaaaaabbabaabbbabaabbabbaa
|
||||
abaaaabbaabbabaaaabbbababbabaaaaaabbaaba
|
||||
baaaaaabbbabbbbaabbbbbbbbbabaabbbabbabababaabababbbbaaabaaaabbbababbbbaa
|
||||
aaaaaaaaaabbbabaaabbaaab
|
||||
aababbbababaabbaaaabbbababbbaabb
|
||||
abbbbabbaaabbbaaababaabbbabababa
|
||||
aaaaabaabaaaabaaabbaabaa
|
||||
bababbabbabaababbabbbabb
|
||||
abbbbabbbaabbbabbbbaabaabbbaabbaaaaababaaaaaaaaababaaaba
|
||||
aabaaababbbaabaabaabaaaabbbbaaababbbbaba
|
||||
abbabaabbbaaababaaabaaba
|
||||
bbaaababbbbbbaababbbabaa
|
||||
bbabaaaababbbaaaabaaaaaa
|
||||
aaabbaaabbabaababaaaabba
|
||||
baabbabaaabbaaaaabbbbaba
|
||||
baabaabababbaabbbbababaa
|
||||
aaaabaabbbaaababaabbaabbabbbaaaaabaabaab
|
||||
aaababbbaabaaaabbaaaabbbbabbbbba
|
||||
aaabbbaababbaababbaaaaba
|
||||
bbbabbbababbbaabbbaababa
|
||||
abbbaaaabbabbbaaabbaabaa
|
||||
aaaaaabbbbabbaaaabbabbbabaabbbabbbaaabaabaaaabaa
|
||||
abababaaaaaaaaaaabbbaababaaaabbabbaabbabbabaabaaaabaabaababaabbabaabbbbb
|
||||
ababbbaaabaabbaaabaababaabbbbbaa
|
||||
abbabbbaababbababbbbbabaaabaabbabaabbabbbbaaaabaabaaabaa
|
||||
ababbaabababbbabbbbbaaab
|
||||
babbabaababaaabbbaabaabb
|
||||
bbababbbaaabbaabbabbabaaaabaabaa
|
||||
abaababbbaabbababaaababbbabaababbaaaaabaabbabbbb
|
||||
ababababaaababaabbaaaabb
|
||||
bbbaaaaaababbaababaabbba
|
||||
babbbaababbbabbabbabaababaababbabbaababa
|
||||
baabaabbbbaaaaaabbbaaabb
|
||||
abbbaababbbbbabababbaabaaaaaabaaabbaaaaaabbbbaabaabbbbaaaabbbbabaababaab
|
||||
ababaabbaabababbbbabbaabaaababaabaaaaababaaaabba
|
||||
ababbbbbaabbaababababaababaaaaaaabbaaaaabbabbbaa
|
||||
abbaaabbabaaaabbbbbabbbbbabbaabbbbbaaaaaabbbabbbbbbaabba
|
||||
aaababbaaaaabaabbbaaababaaaabbbb
|
||||
aabaaababbbbbbabaaabbabaabbaaaaabbbbbbbbababababbbaababbbabbabab
|
||||
bbbaababbaaabbaabbbbbbaaabaaaaabaabbaababbaaaaab
|
||||
aaaabbbaababbaabbabaabbababaaabbbaabbaab
|
||||
bbbabababbababababbaabaa
|
||||
bbbbabaabbaababbaaaabbbaabbbbbab
|
||||
aaabbaaaaaaabbbaabbbbbbaabaaaabababbbaaabbaababbbaaaaaaaababbbbabababaaa
|
||||
aaaaabbababbababbbababbbbaaababbabaabbaaaababbaabbaabbaa
|
||||
bbabbabaaaaaabaabababbbbaaabbbba
|
||||
ababbbaabbababbaaaaaaaab
|
||||
babaaabbbaabbabaaaabaabb
|
||||
babbababbbbbabaabababaab
|
||||
bababbabbbaabaabbbbabaab
|
||||
abbbaabaaabbbbbbaabbbbbbaabaaabbbbbbbaaaababbaaaaababaaabaaabaaa
|
||||
abaabaaaabaababababaaabaaaabbbaabbabaaab
|
||||
ababbbabaaaaaaaababbbbab
|
||||
bbabbbbaabbbbabaaaaaabbbbababbaaabbbbbbbbbaabbbabbaaababababbbbbabbaabbabbabaaaabbbabbba
|
||||
abaaaabbaaabbaabaaabaaaabbbabbbbababbbaabaabbbab
|
||||
aabbbbbbbabbaababaabbababaabbbba
|
||||
baaaabbbbababbabbbaabbba
|
||||
abbbaaaaababbbababbabaaa
|
||||
bbbabbbaaaababbaabaabbaaabaababaabbabababbaaabbaaaaaaabbabaabbabbbbaabbb
|
||||
12
input/day19_example.txt
Normal file
12
input/day19_example.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
0: 4 1 5
|
||||
1: 2 3 | 3 2
|
||||
2: 4 4 | 5 5
|
||||
3: 4 5 | 5 4
|
||||
4: "a"
|
||||
5: "b"
|
||||
|
||||
ababbb
|
||||
bababa
|
||||
abbbab
|
||||
aaabbb
|
||||
aaaabbb
|
||||
12
src/day17.rs
12
src/day17.rs
@@ -13,7 +13,7 @@ pub fn solve() {
|
||||
let lower = Vec4::of(-cycles-1, -cycles-1, -cycles-1, -cycles-1);
|
||||
let upper = Vec4::of(initial_width + cycles+1, initial_height + cycles+1, cycles + 2, cycles + 2);
|
||||
|
||||
let mut initial_state = BoolGrid3D::new(lower, upper);
|
||||
let mut initial_state = BoolGrid4D::new(lower, upper);
|
||||
for y in 0..initial_height {
|
||||
let mut line_chars = lines[y as usize].chars();
|
||||
|
||||
@@ -36,7 +36,7 @@ pub fn solve() {
|
||||
println!("Day 17 Part 2: {}", part2);
|
||||
}
|
||||
|
||||
fn run_conway_cube_simulation(initial_state: &BoolGrid3D, cycles: u32, restrict_fourth_dimension: bool) -> BoolGrid3D {
|
||||
fn run_conway_cube_simulation(initial_state: &BoolGrid4D, cycles: u32, restrict_fourth_dimension: bool) -> BoolGrid4D {
|
||||
|
||||
let mut prev_state = initial_state.clone();
|
||||
let mut next_state = initial_state.clone();
|
||||
@@ -120,7 +120,7 @@ impl Vec4 {
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
struct BoolGrid3D {
|
||||
struct BoolGrid4D {
|
||||
|
||||
data: BitArray,
|
||||
lower: Vec4,
|
||||
@@ -128,9 +128,9 @@ struct BoolGrid3D {
|
||||
size: Vec4,
|
||||
}
|
||||
|
||||
impl BoolGrid3D {
|
||||
impl BoolGrid4D {
|
||||
|
||||
fn new(lower: Vec4, upper: Vec4) -> BoolGrid3D {
|
||||
fn new(lower: Vec4, upper: Vec4) -> BoolGrid4D {
|
||||
|
||||
assert!(lower.x < upper.x && lower.y < upper.y && lower.z < upper.z);
|
||||
|
||||
@@ -141,7 +141,7 @@ impl BoolGrid3D {
|
||||
w: upper.w - lower.w
|
||||
};
|
||||
|
||||
return BoolGrid3D {
|
||||
return BoolGrid4D {
|
||||
data: BitArray::new((size.x * size.y * size.z * size.w) as usize, false),
|
||||
lower, upper, size
|
||||
}
|
||||
|
||||
112
src/day19.rs
Normal file
112
src/day19.rs
Normal file
@@ -0,0 +1,112 @@
|
||||
use super::util;
|
||||
use regex::Regex;
|
||||
use crate::day19::RuleType::{Letter, Options};
|
||||
use std::collections::{HashMap, HashSet};
|
||||
|
||||
pub fn solve() {
|
||||
let lines = util::read_file("input/day19.txt");
|
||||
let mut rules_map = HashMap::new();
|
||||
lines.iter()
|
||||
.take_while(|s| s != &&String::from(""))
|
||||
.for_each(|s| {
|
||||
let mut line_split = s.split(": ");
|
||||
let idx = line_split.next().unwrap().parse::<usize>().unwrap();
|
||||
let rule = Rule::parse(line_split.next().unwrap());
|
||||
rules_map.insert(idx, rule);
|
||||
});
|
||||
|
||||
let messages: Vec<&String> = lines[(rules_map.len() + 1)..].iter().collect();
|
||||
|
||||
println!("{:?}", try_match(&messages[0], &0, &rules_map));
|
||||
let part1 = messages.iter().filter(|m| try_match(m, &0, &rules_map).contains(&m.len())).count();
|
||||
println!("Day X Part 1: {}", part1);
|
||||
|
||||
// We update the rules to include the loops:
|
||||
rules_map.insert(8, Rule::parse("42 | 42 8"));
|
||||
rules_map.insert(11, Rule::parse("42 31 | 42 11 31"));
|
||||
|
||||
|
||||
let part2 = messages.iter().filter(|m| try_match(m, &0, &rules_map).contains(&m.len())).count();
|
||||
println!("Day X Part 2: {}", part2);
|
||||
}
|
||||
|
||||
/// Calculates and returns until when the string was matched
|
||||
fn try_match(message: &str, rule_idx: &usize, rules: &HashMap<usize, Rule>) -> HashSet<usize> {
|
||||
|
||||
let rule = rules.get(&rule_idx).unwrap();
|
||||
if rule.rule_type == Letter {
|
||||
|
||||
if message.starts_with(rule.letters.as_ref().unwrap()) {
|
||||
let mut res = HashSet::new();
|
||||
// Note: kind of a hack here, all the "letter" based matchers are of length 1
|
||||
res.insert(rule.letters.as_ref().unwrap().len().clone());
|
||||
return res;
|
||||
} else {
|
||||
return HashSet::new();
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
return rule.options.as_ref().unwrap().iter()
|
||||
.flat_map(|options| {
|
||||
let mut try_from = HashSet::new();
|
||||
try_from.insert(0);
|
||||
let mut next_try_from = HashSet::new();
|
||||
for option_rule_idx in options {
|
||||
for start_idx in try_from {
|
||||
try_match(&message[start_idx..], &option_rule_idx, rules)
|
||||
.iter()
|
||||
.for_each(|m| { if m != &0 { next_try_from.insert(start_idx + m); () }})
|
||||
|
||||
}
|
||||
try_from = next_try_from.clone();
|
||||
if try_from.is_empty() { break; }
|
||||
next_try_from.clear();
|
||||
}
|
||||
return try_from;
|
||||
}).collect();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
struct Rule {
|
||||
|
||||
rule_type: RuleType,
|
||||
letters: Option<String>,
|
||||
options: Option<Vec<Vec<usize>>>
|
||||
|
||||
}
|
||||
|
||||
impl Rule {
|
||||
|
||||
fn parse(input: &str) -> Rule {
|
||||
|
||||
lazy_static! {
|
||||
static ref LETTER_RULE_MATCHER: Regex = Regex::new(r###"^"([a-z])"$"###).unwrap();
|
||||
}
|
||||
return if LETTER_RULE_MATCHER.is_match(input) {
|
||||
Rule {
|
||||
rule_type: Letter,
|
||||
letters: Option::Some(LETTER_RULE_MATCHER.captures(input).unwrap().get(1).map(|m| String::from(m.as_str())).unwrap()),
|
||||
options: Option::None,
|
||||
}
|
||||
} else {
|
||||
let options =
|
||||
input.split(" | ")
|
||||
.map(|s| s.split(" ").map(|o| o.parse::<usize>().unwrap()).collect::<Vec<_>>()).collect::<Vec<_>>();
|
||||
Rule {
|
||||
rule_type: Options,
|
||||
letters: Option::None,
|
||||
options: Option::Some(options)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Clone)]
|
||||
enum RuleType {
|
||||
Letter, Options
|
||||
}
|
||||
@@ -19,8 +19,9 @@ mod day14;
|
||||
mod day15;
|
||||
mod day16;
|
||||
mod day17;
|
||||
mod day19;
|
||||
|
||||
const MAX_DAY: u8 = 17;
|
||||
const MAX_DAY: u8 = 19;
|
||||
const BENCHMARK_AMOUNT: u32 = 100;
|
||||
|
||||
fn solve(day: u8) {
|
||||
@@ -42,6 +43,8 @@ fn solve(day: u8) {
|
||||
15 => day15::solve(),
|
||||
16 => day16::solve(),
|
||||
17 => day17::solve(),
|
||||
// 18 => day18::solve(),
|
||||
19 => day19::solve(),
|
||||
_ => println!("This day is not yet implemented")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user