feat: solve day 19
This commit is contained in:
parent
2341d34270
commit
4f1e08a310
605
19/input.txt
Normal file
605
19/input.txt
Normal file
@ -0,0 +1,605 @@
|
|||||||
|
25: 6 54 | 28 122
|
||||||
|
52: 27 54 | 25 122
|
||||||
|
44: 118 122 | 30 54
|
||||||
|
37: 122 97 | 54 98
|
||||||
|
38: 122 22 | 54 3
|
||||||
|
77: 54 34 | 122 7
|
||||||
|
17: 122 124 | 54 47
|
||||||
|
1: 54 79 | 122 119
|
||||||
|
13: 122 121 | 54 15
|
||||||
|
29: 122 3 | 54 97
|
||||||
|
24: 54 97 | 122 62
|
||||||
|
80: 122 1 | 54 21
|
||||||
|
62: 54 54 | 122 54
|
||||||
|
5: 54 61 | 122 119
|
||||||
|
28: 54 57 | 122 36
|
||||||
|
101: 122 48 | 54 44
|
||||||
|
81: 120 54 | 14 122
|
||||||
|
14: 54 96 | 122 38
|
||||||
|
18: 40 122 | 76 54
|
||||||
|
27: 122 93 | 54 103
|
||||||
|
4: 123 122 | 90 54
|
||||||
|
65: 122 87 | 54 22
|
||||||
|
113: 54 | 122
|
||||||
|
23: 122 127 | 54 62
|
||||||
|
117: 71 54 | 119 122
|
||||||
|
53: 35 54 | 126 122
|
||||||
|
26: 122 52 | 54 108
|
||||||
|
125: 54 33 | 122 4
|
||||||
|
10: 74 122 | 53 54
|
||||||
|
84: 54 19 | 122 109
|
||||||
|
123: 122 114 | 54 115
|
||||||
|
42: 70 122 | 26 54
|
||||||
|
16: 122 39 | 54 98
|
||||||
|
63: 98 54 | 51 122
|
||||||
|
39: 54 122
|
||||||
|
76: 122 83 | 54 101
|
||||||
|
61: 122 3 | 54 39
|
||||||
|
50: 122 85 | 54 95
|
||||||
|
78: 22 122 | 3 54
|
||||||
|
114: 122 122
|
||||||
|
64: 122 122 | 122 54
|
||||||
|
40: 122 81 | 54 55
|
||||||
|
92: 127 122 | 97 54
|
||||||
|
119: 122 51
|
||||||
|
57: 98 54 | 114 122
|
||||||
|
3: 113 122 | 54 54
|
||||||
|
97: 122 113 | 54 122
|
||||||
|
7: 122 37 | 54 59
|
||||||
|
74: 54 46 | 122 56
|
||||||
|
2: 122 67 | 54 50
|
||||||
|
48: 43 122 | 65 54
|
||||||
|
124: 54 94 | 122 36
|
||||||
|
82: 54 98 | 122 64
|
||||||
|
93: 59 122 | 116 54
|
||||||
|
96: 115 122 | 97 54
|
||||||
|
98: 54 54
|
||||||
|
60: 51 54 | 22 122
|
||||||
|
72: 122 98 | 54 3
|
||||||
|
106: 39 54 | 39 122
|
||||||
|
41: 51 54 | 97 122
|
||||||
|
31: 18 54 | 69 122
|
||||||
|
91: 122 62 | 54 127
|
||||||
|
120: 105 122 | 19 54
|
||||||
|
56: 60 122 | 78 54
|
||||||
|
47: 16 122 | 91 54
|
||||||
|
88: 97 113
|
||||||
|
30: 22 122 | 115 54
|
||||||
|
71: 51 54 | 39 122
|
||||||
|
87: 122 122 | 54 122
|
||||||
|
21: 122 102 | 54 73
|
||||||
|
43: 122 22 | 54 127
|
||||||
|
35: 54 23 | 122 90
|
||||||
|
51: 113 113
|
||||||
|
90: 122 62 | 54 87
|
||||||
|
32: 54 127 | 122 97
|
||||||
|
115: 122 54 | 54 113
|
||||||
|
55: 54 84 | 122 89
|
||||||
|
73: 122 51 | 54 39
|
||||||
|
36: 22 54 | 114 122
|
||||||
|
68: 122 87 | 54 98
|
||||||
|
34: 118 54 | 32 122
|
||||||
|
95: 54 87
|
||||||
|
83: 122 117 | 54 20
|
||||||
|
33: 99 54 | 29 122
|
||||||
|
19: 122 127 | 54 98
|
||||||
|
46: 54 112 | 122 79
|
||||||
|
89: 54 72 | 122 66
|
||||||
|
110: 54 51 | 122 98
|
||||||
|
109: 64 54 | 22 122
|
||||||
|
9: 54 107 | 122 5
|
||||||
|
12: 54 80 | 122 45
|
||||||
|
104: 54 100 | 122 32
|
||||||
|
15: 75 122 | 63 54
|
||||||
|
69: 122 49 | 54 12
|
||||||
|
8: 42
|
||||||
|
75: 97 54 | 3 122
|
||||||
|
108: 122 77 | 54 125
|
||||||
|
103: 122 88 | 54 24
|
||||||
|
111: 3 54 | 39 122
|
||||||
|
70: 122 58 | 54 10
|
||||||
|
20: 122 105 | 54 68
|
||||||
|
0: 8 11
|
||||||
|
122: "a"
|
||||||
|
79: 62 54 | 22 122
|
||||||
|
102: 87 122 | 97 54
|
||||||
|
105: 98 54 | 98 122
|
||||||
|
49: 13 54 | 2 122
|
||||||
|
112: 54 39 | 122 62
|
||||||
|
58: 9 122 | 17 54
|
||||||
|
11: 42 31
|
||||||
|
107: 66 122 | 110 54
|
||||||
|
86: 54 106 | 122 82
|
||||||
|
99: 127 122 | 39 54
|
||||||
|
22: 54 122 | 122 54
|
||||||
|
118: 54 3 | 122 64
|
||||||
|
67: 122 59 | 54 111
|
||||||
|
126: 78 54 | 92 122
|
||||||
|
121: 54 41 | 122 38
|
||||||
|
66: 22 113
|
||||||
|
94: 54 39
|
||||||
|
6: 88 122 | 29 54
|
||||||
|
127: 122 54
|
||||||
|
116: 54 39 | 122 87
|
||||||
|
59: 54 51
|
||||||
|
85: 64 122 | 97 54
|
||||||
|
100: 98 122 | 62 54
|
||||||
|
54: "b"
|
||||||
|
45: 86 122 | 104 54
|
||||||
|
|
||||||
|
baaabbaabababaaababaaaaababbbabaabbbabba
|
||||||
|
baabbbbbaababbabaaabbabb
|
||||||
|
abbabbaabbabbbaabbabaaaaaabaabbbabbabbaa
|
||||||
|
bababbaababaabbaaabbabbb
|
||||||
|
baaabbaababbbbaabbbaaaba
|
||||||
|
bababbaababbbbbbaabbbbbb
|
||||||
|
ababababbabbaababbaabbbabbaabababaaababbaabaaaabbbbbaaaa
|
||||||
|
bbabbabaaaaabaaabbaabbab
|
||||||
|
abbbaabbababaabbbaabaaab
|
||||||
|
bababaaaabbbbbaaaabbbbbb
|
||||||
|
bbabaabbbbabbaabbabaabbaabbbbbaa
|
||||||
|
babaabaaabaaabbbbbbabbababaaabbbaaaaababbaabaabb
|
||||||
|
abaaaaaabaaabbbabbbaaabaababaabaaabababaaabaabba
|
||||||
|
aabbbaaaababbaaaaababbbb
|
||||||
|
babaabbaaaaabaaabaabbbabbababbbb
|
||||||
|
aabbabbbbbabaaaabbaabbab
|
||||||
|
abbabaaaaaaaaaaaabaabbbbaaabbbabaaabbabb
|
||||||
|
aaababbbaabbabbbaaabaaba
|
||||||
|
babbaabbbabaaaaaaabbbbabbabaabbababbbbabaababbba
|
||||||
|
abababbbabbabbaabaaabbbbababbabb
|
||||||
|
aaaaabbbbbbbaaaabbbaaabb
|
||||||
|
baababaaababaaabbaabaaabaabbabbabbaaaabb
|
||||||
|
babaabbbababaabaaababbbb
|
||||||
|
babaabaababbbbbbaabbaaba
|
||||||
|
babaabbbbabaaaabbbabbbaaaabaaaba
|
||||||
|
bbbabbbabbbbbaabbbbaabba
|
||||||
|
aaaaaababbabbbaaaaabbabb
|
||||||
|
bbabbbaaaababaaaababaaab
|
||||||
|
baabaababbbbbbbaaaaababb
|
||||||
|
abaababbaaaabbbaaabbabababaababbbbaabaab
|
||||||
|
abbbbbaaaababaabbbbababa
|
||||||
|
aabbabababbbbbaabbaaabba
|
||||||
|
abbaaababaabbbaaaabbaaaabbbabbabbababababaaaaaaabaabaabaaaaabaabbaabaaabaababbbbbbaabbaa
|
||||||
|
abbabaaaaaaaababbbbaabba
|
||||||
|
bbabbbaaaaabaababbbbbaaabbaaaabababbbabaabbabaababaaababbaabbbbbaababbbb
|
||||||
|
abbabaabbbbbaababbabbbbaabbaaaab
|
||||||
|
baaaabababaabbabbbbbbaabbaaaaabbbabbbbba
|
||||||
|
abbbabbbbbabaabbaaabaabb
|
||||||
|
aaaaababbbbabbaabaababba
|
||||||
|
baabbbbaaaaabbababababba
|
||||||
|
bbbabbaaabbaaaaaabaabbaa
|
||||||
|
babbaabbbabbaabbaaababababaaabab
|
||||||
|
ababaabbbaaabaaabaaaababbbaababaaababaabbbbbabbaaabbaaaa
|
||||||
|
aabbbabaaaaaabaaaaabbbaa
|
||||||
|
aabaaabbbbbbbbbaaabababa
|
||||||
|
abbaabababbbaabbbabbbbaaaaaaabbaaaababababaabbbabbbababa
|
||||||
|
aabbbabbabbaaaaabbbaaabb
|
||||||
|
bbbabbbabbaabbbbbbbaaaba
|
||||||
|
bbabababaababbaaababbaab
|
||||||
|
abbabbbabbbbbaaaabbabaaabbabaabaababbaaaaaabbabb
|
||||||
|
abbbbaabbabaaababbabaaab
|
||||||
|
aabbbbabaaaabbbaabbaabbbbbaabaaaaaaaaabaaaabbbaabaabaaab
|
||||||
|
abaaabababbbbaabbbbbaaba
|
||||||
|
bbbbbabbbabbbaaabbaababaaaabbabbaaaaaaabaaaaaaaaabbabaaaabbabbaabbbbaaabaaaabbba
|
||||||
|
baabaabaabbbabbbbbaabaaaaaabbbaa
|
||||||
|
bbbaaaaabbbbbbaabbaabaabbbbbbbbbabbababaaabbbbbb
|
||||||
|
bababaabbabaabbabbbbbabababaaabb
|
||||||
|
abaabbabaabaaabbbbaaabba
|
||||||
|
babbaababbabbaababbbbaaa
|
||||||
|
aabaababbabaababaababbbb
|
||||||
|
aaababbaabbaaaaababaaabaaabbbabbbaaabababbbabbbb
|
||||||
|
aaaaaabaabaabbbaabaaabaa
|
||||||
|
babaabababbabaaaaaaababb
|
||||||
|
bbabaabbabaabbbaaaaaaabb
|
||||||
|
abbabbbbbaaabbaaaaabaaab
|
||||||
|
ababaaaabbabbbaabababaaaaababaabbbaabbaaaababbbb
|
||||||
|
babaaaaaababbbbaaabbbaaaabbbbbabbbababba
|
||||||
|
bbbbabbbaababbabaabaabba
|
||||||
|
babbabbbbaaaaabbbabbbaaaabaabaaa
|
||||||
|
aabaaabbaabbbbabbbbababa
|
||||||
|
babbabbaaaababbbaabbaaaa
|
||||||
|
aabaababbaaabbbbbbbaabbb
|
||||||
|
babaaaabbabaabbaabaaabababbaabbbbaaaabbb
|
||||||
|
bbaabbbbbbabbbababbbabba
|
||||||
|
bbbabaabbaabaabababbbaaa
|
||||||
|
bbabaabbbaababbaaaabbbababbaaabaaaaabababaaaabbabbbaaabb
|
||||||
|
ababaabababaabbbbbababaa
|
||||||
|
abbabbaabbbbabababbababb
|
||||||
|
baabbbbaaababbabaaabbaaa
|
||||||
|
ababaabaababababaaabbabb
|
||||||
|
babbbbaaabaabbbababbaaaa
|
||||||
|
aaaabbabbabaaabbbbbaabbb
|
||||||
|
babbababaabbbababbabababbababbba
|
||||||
|
aabbbabbbaaabbaabbbabaaa
|
||||||
|
aaaabbabbbbabbaaaaabbbba
|
||||||
|
aaabbaabaaaaabaababaabbaababaaaababaabababbbaaaababbabaa
|
||||||
|
babbabbabbaabbaaaaabbbbb
|
||||||
|
bbababbbaaaabaaaabbaababbbaabaabaababbbabbbbbbaabbbaababbbbbbaabaaaaabbbaabbbbabaabbbbba
|
||||||
|
aabbbabaaaaaabbbbbaabbaababbaaabaabaabbbaabaabbb
|
||||||
|
bababaababbbbbaaabbaabab
|
||||||
|
baaaaaababaaaaabbabbbbba
|
||||||
|
aaababbabaaaababbbabbbaabbbbaabb
|
||||||
|
bbabbbaabaaaababbaaaaaba
|
||||||
|
abbbbbaaaabbbbababbbaaba
|
||||||
|
bbbababbabbbaabbbbbbabaa
|
||||||
|
abbbbabaabababbbbabaabaabbbaabba
|
||||||
|
bbbbbbbaabbaabaabbbbaaaa
|
||||||
|
bbbbbaaabaabaaaabaababbb
|
||||||
|
abaaababbbbbbaaaaabbbaab
|
||||||
|
abaaaaabbbbaaaabaababbaa
|
||||||
|
baaaababbbabaabbaaabaaab
|
||||||
|
aaababbbaaabbaababaaaaaabbaaaabaaaaabbaa
|
||||||
|
bbabbaabbaaaababbbaababaaabbabba
|
||||||
|
abaaaaabbbbaaaabbaaabaab
|
||||||
|
ababbbaaabbabbabbabbaaab
|
||||||
|
baaabbbbaaabbaababaabbabababbabb
|
||||||
|
abbabbbbbbaaabbbbbaaaabb
|
||||||
|
baabbbaaabbbabbbbababbaabbbbbbbbabbaaaabbbaababbbaaaaabbbabaabbaaababbbbbabaaaba
|
||||||
|
aababbaabbbbbababbbbabbabbababbaabbaabbaaaaaaaab
|
||||||
|
bbbbaaabaaabababbbabbababbbaabab
|
||||||
|
bbaabababbaaabbbaaaababb
|
||||||
|
abbbaabbbaabbaabbaababba
|
||||||
|
aabababbbabbbbaabaaaaaabbbaabbabbabbabbb
|
||||||
|
babbbbbabbbbbbbaaaaaabaaababbbbaaaabbaaa
|
||||||
|
babaabbaaabbabababbbbbbb
|
||||||
|
bbbaabaaabaaaaabbabaaabbaabaabaa
|
||||||
|
babbababaabaababababaabaababaaab
|
||||||
|
bbaaaaababbabbabbbbbaabb
|
||||||
|
babbbabbabaaaabbabaabaaa
|
||||||
|
babbababbaabbaabbbaabaab
|
||||||
|
abbabaabbaaabaaaaabbbabbbbabbabaaababbbbbabaabba
|
||||||
|
bababbaabaabbbabbbabbbbb
|
||||||
|
babbbbbbbaaaaabbbbababaa
|
||||||
|
baaaaaababbabaabbaaaaaba
|
||||||
|
aabababbbbaababaabbaabaaaaaabaaabaababba
|
||||||
|
abaaababbaabbabbaaaaababaabbaabbabbaaaabbbbaababababaaba
|
||||||
|
bbbabbbababbbabbbbbaabaaaababbaababaaaaabaababaaabbaabababbaabab
|
||||||
|
aaababbbbbabaabaababbaab
|
||||||
|
bbbbaaabbbbabbbabbbbaaaa
|
||||||
|
bbbabbababaaababaaaababb
|
||||||
|
baabbbbbbbabaababababaabaabbaaaaaabbabaa
|
||||||
|
abbabbaaaaaabbbaababbbbb
|
||||||
|
bbaabbbbbaaabbbbbbbaabba
|
||||||
|
bbbaaaababbabbabbaababab
|
||||||
|
baaabbaababaabaaabbbabab
|
||||||
|
ababaaaaaabaaabbabaabbaa
|
||||||
|
aababaabbababbaababbababbbaabababaabbabababbabaaaaababaaaabbbaabaabaabaa
|
||||||
|
bbaababababbabbaababaaab
|
||||||
|
aaabababababbbbabbbaabab
|
||||||
|
aabaaaaabaaaaabbaaaaababaaabbaabbaabbbabbaababab
|
||||||
|
bbaaabaaaaabaabbabaaaaba
|
||||||
|
babbbbabbabbbbaaabbaaaaaabbaabbababababb
|
||||||
|
abbbbaabaaababbbbabbabbabbaabaaabbbbbbbbbaaaabaabbaaabab
|
||||||
|
abbaaaaaabbbbabbabaabbbbaaaabababbbbaaba
|
||||||
|
bababaaaababbbbaaaababbaababbaaababaaababababbbbaaabbbba
|
||||||
|
baaabbbbabaaaaabbbbbbbbb
|
||||||
|
bbbbbabbaaaabaabababbbbb
|
||||||
|
ababaaaaaaababbabaaaabba
|
||||||
|
abbbbaabbbaabbbabaaababa
|
||||||
|
abaaababbabababaaabaabaa
|
||||||
|
baaaababaaabaaabbaabaaab
|
||||||
|
abbbbabababbabbaaabbbabbaabaaabaaabababaabbbabab
|
||||||
|
babaaabaaabaabababbaaaab
|
||||||
|
bbabbabbbabbaabbaaaaaabababababbbaabababaaabaababbaabbab
|
||||||
|
abbaabbbbabaabaaaaababaa
|
||||||
|
bbaabbaaaaababbaabbbaabbbbabbabaaabbbababbaabbaaaabbbbaa
|
||||||
|
bbbbababbbbababbbbbabbaaaaaabaabbbbbaabb
|
||||||
|
babbabbbabbabbaaabbbbbaa
|
||||||
|
abababbbbbabbabbabbaaabb
|
||||||
|
bbaabbbabbbbababbbabbaaa
|
||||||
|
baabbabbbbbabbabbbabbbba
|
||||||
|
aabaababbabbbabbbababbbb
|
||||||
|
babbababbbabaababbbaabba
|
||||||
|
aaaabbababbbbaabbbabbabbbabaaabbbaababaabaababbb
|
||||||
|
abbbaabbabbbbbaababababb
|
||||||
|
abbaabaabbbabbaaababbabb
|
||||||
|
baabbabbbaabaaaaaaaaabba
|
||||||
|
bbaabababaaaaaabababaabaabaaaaabaabbbbbbabbbbaaa
|
||||||
|
babaabababbaaaababaababababbbaab
|
||||||
|
aaaaabbbbbabaabbbaababab
|
||||||
|
bbbbbaababbbbaabaaabbaba
|
||||||
|
abbabbaaababaabbbbbaabaabbababab
|
||||||
|
bbbabaabababbbabaaaababa
|
||||||
|
baaabbbababbaababbbbabba
|
||||||
|
aaaabbaabbaabbbabbbbaaaa
|
||||||
|
aabaaabbaabbaabbabbbbbab
|
||||||
|
bbbababbbababbaaabaaabba
|
||||||
|
abbbbbaaabbaaaaaabbaabba
|
||||||
|
babaaaababbbbababaaaabbb
|
||||||
|
baaabbbaaaababbabbbaaaaa
|
||||||
|
bbbababbababbaabbbabbbbb
|
||||||
|
aabbbbababaabbbaabaaaaaa
|
||||||
|
abaababbaaaaabaababbababababbbaaabaaaababbbaabbb
|
||||||
|
babaaaababbaabaabbbbaaaa
|
||||||
|
baabbabbabbbabbbaabaababbabaaaaa
|
||||||
|
babbbbbbabbbabbbaaabbabbaabababaaabaaaba
|
||||||
|
abbabbbaabbaabaabbaaaaaa
|
||||||
|
bbbabbaababbbbaabaaababb
|
||||||
|
abaabbabaababbaabbaaaabb
|
||||||
|
baabbabbbabbbabbabbbaaab
|
||||||
|
abbbbaabbababbaababaaaaaaababbaabbababaa
|
||||||
|
ababababbbbbabababaaaaaa
|
||||||
|
bbbaaaabbabbaabbbabbbabbbbababaa
|
||||||
|
bbbbbbbaabbabbbbbbbabbbb
|
||||||
|
baaaaaababbabbbabbbbbbbaaaaaaabbbaaababb
|
||||||
|
bbabbbababbaaabaaabbabaaabbabbbabbabbbaaababbbab
|
||||||
|
bbabbaabbbaaabbbabaaabbbabaabbaabbaaabba
|
||||||
|
abaaaaabbbaababbababbbabbbbabaabaabbaabbbbababbbababbaaaabaaabaabbaaabaa
|
||||||
|
bbabaabbaabbaabbaabaabbb
|
||||||
|
baabbaaabbabababbaababab
|
||||||
|
bbaababaaabbbaaababbbaba
|
||||||
|
babaaabaabaabaabaaabbaabbaaabbaabaabaaba
|
||||||
|
babaabbabaababaabbbaaaaa
|
||||||
|
bababbaaabababababaaaaba
|
||||||
|
aaaabbabbabbaababbaabbab
|
||||||
|
abbabababaaabbbaaaabaabbbbaabaabbababbbbbbbbaaabbaaababbabbbbaaabbaaabab
|
||||||
|
bababaabaaaabaaaabababbbabbaaaba
|
||||||
|
aabbbbabaabbaabbbbbabaabbaababbabbaaabababbbbbba
|
||||||
|
baabbabaaabbbbabbbaaabaa
|
||||||
|
bbbbbababababaabaaababaa
|
||||||
|
aabaabbaabaaaaabbbbbabababbababb
|
||||||
|
baabbabbaabbbbabbaaababa
|
||||||
|
aababbaabbaabababbaabaab
|
||||||
|
baababaabbbabbbaabaabaab
|
||||||
|
aaaaabaaaaaaaabaaabaaaab
|
||||||
|
abbabbabaabbabbbabaabbbabaababaababbbbbbaaabbaaaabaaabaa
|
||||||
|
aabbbbabbbaabababaababbb
|
||||||
|
aabaababbababaaaabbaabba
|
||||||
|
aabbaabbbabaabaabbabbbbb
|
||||||
|
bababaaaabbbbbaabbbaabbb
|
||||||
|
babbbaaababbbaaaaaaabbbb
|
||||||
|
aabbbabaabbbabaabbbaabbb
|
||||||
|
aaaabbaabbbbabbbbbabaabaabaaabaa
|
||||||
|
abbabbaaabbabbbaabbbaaba
|
||||||
|
ababaabbbbabababaaabbaaa
|
||||||
|
aaabababaaaaabaaaaaaabbbbbbbabababbaaabaabbbaaab
|
||||||
|
baaaababbaababaaabababaa
|
||||||
|
aaaabbaaabbbabbbbaaaabba
|
||||||
|
abaabbbbbaaaaaabaababbaaababbaabaabababa
|
||||||
|
abbabbbbababbbaabaabbaaabbbbbbaabbbbabaa
|
||||||
|
bbabbabbbbabaabbabbbaaab
|
||||||
|
aabbbababbbaaaabaabaabbb
|
||||||
|
bbbabaabbaaabbbbbaabaabb
|
||||||
|
ababaabaaaaaababaaabbaaa
|
||||||
|
baaaaaabbabbabbaabbbaaab
|
||||||
|
bbabaabaababaaaaabbabaaaabababba
|
||||||
|
aabbbaaaaaabbaabbbabbaabbaabaaaa
|
||||||
|
abaaabbbbbaaabbbbaaabbab
|
||||||
|
bbabbabbabaaabbbbabbbbbbabbbbbbaababaaaaabbbbbabaaababbabbbabaababaabbbbabbabbab
|
||||||
|
babaabaababababaaaabbbba
|
||||||
|
bbaabaaababbbbbbbaabaabb
|
||||||
|
baabbbabababaaaaaabbbbaabbbaabab
|
||||||
|
abbbaaaababaabbabaabbbabbabbaaabaaabbaababbbbaaa
|
||||||
|
abbbabaabaababaaabbaaaab
|
||||||
|
ababababaabbbbabbbbbbbabbbbabbbaaaaaaabbbaabbabaabaaaabb
|
||||||
|
abaaabbbabaabbababbaabaaaaaabbbaaaabbbba
|
||||||
|
baaaaabbababababbaaabbab
|
||||||
|
babaaabaaabbbaaabaaabbaa
|
||||||
|
babbbabbbabaabaabbbbbbbb
|
||||||
|
aabbbabbabaaababaaabbabb
|
||||||
|
bbaabbaaaaababbaaabbbaab
|
||||||
|
aabbbbabbbbabbbaaabaaaab
|
||||||
|
abaabbbaababababbabaaabbbabbbaba
|
||||||
|
abbaaaaabbabbbabbbaaabba
|
||||||
|
aabaababbaabbabbabbaabba
|
||||||
|
bbabbabbbabbbbaabaababba
|
||||||
|
bbabaabbbbabaabbbbbbaaaa
|
||||||
|
abbbbabaabbbaabbaaababbaabbbabbaaaaababb
|
||||||
|
bbaaabbbbabaabbaabbbbbbb
|
||||||
|
abaaaabababbaaababbbbbbaababbaab
|
||||||
|
abaabbbbababaaaabbbaaabb
|
||||||
|
aaabaabbaababbbbbbbaaaaaabbbaaba
|
||||||
|
aaaaababbaabbaabbabbabbb
|
||||||
|
aaaaaaabaabababbbbbaaaaa
|
||||||
|
bbbbbaaaababaaaaaaabbaba
|
||||||
|
ababbaaababbbaaaaaabbbba
|
||||||
|
babaabbbbbabababbaabaaab
|
||||||
|
aabbbababbbabaabaabbaaab
|
||||||
|
abbbabaaabbbaabbabbaabba
|
||||||
|
baabbaababaabbabaabaaaab
|
||||||
|
baabbabbaabaababbaababbb
|
||||||
|
bbbaaaabaabbbaaaaaaaaaaabaaabbbaabbaaaaaabbbaababaabababababbaabaaabbbab
|
||||||
|
baabbabaaaaabbaaabbbabba
|
||||||
|
babaaabbabbbaabbabbababa
|
||||||
|
bbabbabbaaababbbbbbaaabb
|
||||||
|
aaaaababbabababaaaaababa
|
||||||
|
babaabbbbbbbbbbababbbbbbbbbaaaabaababaaa
|
||||||
|
aaabababaababbaabaaababa
|
||||||
|
ababaabbbabaabaabbaaaaaa
|
||||||
|
aaaabaaaabbabaaababaabaabababaabbaabbbbbaabbbbba
|
||||||
|
baaaaaabbabaabaabbaababb
|
||||||
|
aaabababaaabababaabaabba
|
||||||
|
abbabaaaabbabbbbbbbbbabbaaaaabab
|
||||||
|
bababaaaaababbabbbbbbbbb
|
||||||
|
ababbaaabbbbababbaaaaaba
|
||||||
|
ababaaaabbbaabaabbaaabaa
|
||||||
|
baaabbaabbbaababbaabaaabaaaaabababaabaaabababaaa
|
||||||
|
aaabbaabbaabbabbbbbababbabaaaababaaabaab
|
||||||
|
bbbbbaaabbaabbaababababb
|
||||||
|
aabbbbabaaaaabbbbaabaabb
|
||||||
|
abbabbaaaabbaabaaaaababbabbabbbaabbbbbbaabbabaaababbaabaaabbabab
|
||||||
|
abbabbababbbbababbbaabaabbbaaababbbaaabb
|
||||||
|
bababbaaabaabbabababaaaaabbbabbbaaaaabbb
|
||||||
|
babbaabaaabbaabbbbaaabaa
|
||||||
|
ababbaaababababaabababbbbbaababaabbbbbbb
|
||||||
|
aababaabbbabbaabababababbbbabbbaaaabaaabaaabbabb
|
||||||
|
baabaaaabababaaaababbbbb
|
||||||
|
bbbbabbbabaaabbbbbbababa
|
||||||
|
bbabbbaaaabbbaaabaababbb
|
||||||
|
bbbabbabbaabbabbbaababbb
|
||||||
|
baabaabaaaaaababaabaaaab
|
||||||
|
aabaabbaabaabbbbaaaabaaabbaababbbbbababbbabbbababaaabaabbaabbaabababaaab
|
||||||
|
babbababbbbababbabbbbbaaaaabbbaa
|
||||||
|
bbaabbbaaabaaabbbaababba
|
||||||
|
bbabbbabbbbabbbabbbbaaababbabaaaababbaabaaabaabbabaaabaa
|
||||||
|
abbaabbbabbbbabbbaaabbaaaabaabba
|
||||||
|
baaaaabbbabaaabababaaabbbabababaaababaaabaaaabbaabbaaababababbbaabbbbaaa
|
||||||
|
babbbaaabaaabbbbbbababba
|
||||||
|
aabbbbabbaabaaaababbabbb
|
||||||
|
baabbbbababbbbbbbbbbaaba
|
||||||
|
baabbbabbbaabaaababbaabbabbbababbbabaaab
|
||||||
|
bbabbbababbabbbbababbaaabababbbbabaabbaa
|
||||||
|
aaabababbbbbababaabababbbbbabbbbbabbbaba
|
||||||
|
bbbbabbbbaabbbabbababaaabbbaaabaabbababb
|
||||||
|
ababbbbaababbbabbbababba
|
||||||
|
abbaaaaabaabaaaabbbbaaba
|
||||||
|
aaababababaabbabbbbbbaaaaaaababa
|
||||||
|
bbbabbbabaaabbbbbbabbaabbbbabaaa
|
||||||
|
bababaabbabbbabbaaabbbaa
|
||||||
|
abbbbabbaaaaabbbbababababbbbabbbaaaaabaaaabbaaaa
|
||||||
|
bbabbbaaaabaaabbaaaabbaabbabaaab
|
||||||
|
abbabaaaaaaaaaaaaaabbabb
|
||||||
|
babbbabbbbabaabaabaaaaba
|
||||||
|
babbaabaabaaabbbbbbbbbaa
|
||||||
|
ababbbbabbbbabbbbababaaaabbaaabbbbbaabba
|
||||||
|
aabaababababaabbbbbaaaaa
|
||||||
|
abbbbbaaabbbbabbaaaababa
|
||||||
|
aaabaaabaabbbaabaabababaaaabaaba
|
||||||
|
babbbabbbbaabaaabababbbbbabbababbaabaabb
|
||||||
|
babaabbbbbbabbabaaaabbbaabaaabaaaabaabba
|
||||||
|
bababaabbabaababbabbbabbbbbbababbabbaaaaaabbabaa
|
||||||
|
babaaaabaababaabbbbaabba
|
||||||
|
bbaabbbbbaaabbbaaabbbbabbbaaaaabbabbabbababbabaabaaabababbabbbba
|
||||||
|
baabbaabbbabbababbbabaaa
|
||||||
|
aaaaaaaaababbbababababbbbbabaaaabaaaaababaabbbbb
|
||||||
|
aaaabaaabaabbbbbbbabbbabbabbabaabbbbaaabaaaabbbbbabaabaa
|
||||||
|
aabaabababbbaabbbbabaabbbbaabababbabbabaaaabaabb
|
||||||
|
aabaababbbabaabababbbbab
|
||||||
|
bbaabbbabbbabbbabbabbbba
|
||||||
|
bbaaaaabaaaabbaaaaaaabba
|
||||||
|
bbaaaaabaababbaababbbabbabbabbaa
|
||||||
|
aaabaabbbabaabaaaaabbbabaabbbbbabbbaabaa
|
||||||
|
aaabbbaabbbbaaabababbbbbabbbbbbbbbbabbbaabbabbbbaaaaaababbbbabbaabbabbaaaababbbb
|
||||||
|
aababaabaabbababbababbba
|
||||||
|
babaaaaaaaaaaaabaabaabba
|
||||||
|
aaabbaabbabbaabbbaabbbbbaabbaaba
|
||||||
|
aaababbabbabbabbababbbbb
|
||||||
|
abaaabbbbbaabaaaabbaaaba
|
||||||
|
bbaababaababbbabaabbbaab
|
||||||
|
abbbaabbbaaabbbabaabbbbbaaaaaaabbaaaaabbbbbbabaaabbaaaba
|
||||||
|
babaaaabbabaaaaababbabaa
|
||||||
|
bbbbaaababbbbaabababbbbb
|
||||||
|
abbababbaabaababbbaaaaabaabaabbbbabbabaababababaaaaaabbababbabbbbabbaaaabbbbabaa
|
||||||
|
babaaababbabaaaabbaaaaba
|
||||||
|
bbabbabaabbbbababbbaaabb
|
||||||
|
bbaababaaaaabbbaaaabbaaa
|
||||||
|
babaaaaaaabaababbabbabbaabababbbaaabbbaaaabbbbbabbbbaaaa
|
||||||
|
babaabbababaaabbbaaaabbb
|
||||||
|
aabaababbabbbabababbbbaabaaabaaaaaabbababbbabaaaabaaaaabaaaababaaabbbaaabbaaabbb
|
||||||
|
abbbabaabbbaaaabaaabaabb
|
||||||
|
bbbbbbbaaaabababaabbbbbb
|
||||||
|
ababaaaabbababababbaaabb
|
||||||
|
abbabbabbabbaabbbaaaaabbaabababa
|
||||||
|
bbabbabaababbbabaaaababb
|
||||||
|
babbabbababaaabbabbaaaba
|
||||||
|
aabbaaababbaaabbbbaabaabbbbabbbaaabbbbababbbabbaaabaaaabaaaabaabaabbbaab
|
||||||
|
bbbbbbbaaabbbabbbbaaaabb
|
||||||
|
bbabbaabbbbaabaabbbaaaaa
|
||||||
|
bbbabaabbaabbaaabaaabaaabbbbbbbb
|
||||||
|
aaabababbaabbbbaaababbbb
|
||||||
|
abbbbbbbabaaaaaaabbbbababbababaa
|
||||||
|
bbbaaaabaabaaaaabbaabbab
|
||||||
|
bbbbabbbaaaababbaabaaaab
|
||||||
|
bbaaabbbababbbabbbbbabaa
|
||||||
|
aaaabbaaabaababbbbabbabbbbbbbaaaabbbbbba
|
||||||
|
aabbbabbaaaaabbbbaaabaab
|
||||||
|
abbabbbbbaaaaaabaaabbaaa
|
||||||
|
baaaabababbbbaabaababaaaabaaabbbbbbaaaababbababa
|
||||||
|
bbbbabbbbbbbabbbbabbabbb
|
||||||
|
abbabaaaaabbaabbabaaaaaa
|
||||||
|
abbabbaaaababbaaababaababbbaabbbabbaaaab
|
||||||
|
abbaabaaaaaaabaaaaabbbaa
|
||||||
|
bbbaaaabbaabaabaaabababa
|
||||||
|
bbbaababbbbabaaabbbabaabaabababa
|
||||||
|
baabaababbabababbbbaaaaa
|
||||||
|
baaaabababbaabbbbaabbbabbbbaabab
|
||||||
|
baabbbbaababbaaaabbaabbb
|
||||||
|
babbbbbbabbbbabbabbabbabaabaaabbaaabbbab
|
||||||
|
ababaabbbabbaabbabaababbbbbbbaba
|
||||||
|
baabbabbaaabababbaabaabb
|
||||||
|
ababababbbabbbabbbababaa
|
||||||
|
abbaababaabbbbbabbaaabbabbabaaab
|
||||||
|
babbbbaaababbbabbbababba
|
||||||
|
abababbbabaaababaabbbbbbbbabbbbbbaaaabbbaabaaababababbba
|
||||||
|
aabbaabbbabaabbbbabbbbab
|
||||||
|
baabbbbabbbbabbbbaaababa
|
||||||
|
aaababbbbbbabbaabbbaaabb
|
||||||
|
bbbaaababaabaaabaababbbabaaaaabaaaabbbaa
|
||||||
|
baaabaabbabbaaabbaaababa
|
||||||
|
bbabaabbaababaaaababbbbb
|
||||||
|
ababbbbababbabbababaabaaaaaaaaababababbbaabbbaab
|
||||||
|
bbbbbabaabbbaabbaaaaabba
|
||||||
|
aaabababbbabbaabbbaabaab
|
||||||
|
bbabbabbbabaabbabaababbb
|
||||||
|
aaaaaaababbabbabbabbabaa
|
||||||
|
abbabaaaaaaaaaaaababbbbb
|
||||||
|
babaababbaabbabbabbabbaabababbbaabaabbaa
|
||||||
|
aabbbbaaaababbbbabababbabbbababa
|
||||||
|
bbbabbaabbabaaaaaaabaaaa
|
||||||
|
bbabbabaabbaaaabbbaaaaaa
|
||||||
|
bbaabaaabbabaaaabbbbaabb
|
||||||
|
bbabbaababbabbaaabbbabbbababbaab
|
||||||
|
bbbbababbabbaabbaabbaaab
|
||||||
|
aaaabbababbabaaababbbbbbbbbbbababbbababbabbbaabaaaabbaba
|
||||||
|
abbbaaaababbbbbaaaabababababbaabaabbbbaabaabaabbbabababa
|
||||||
|
bbbbabbbbbbbabbbbbbbbbab
|
||||||
|
bbabababbbabaaaababababb
|
||||||
|
abbabaaaaaaabbbaaaabbbbb
|
||||||
|
baababaaabababbbbabbaaaa
|
||||||
|
bbabbabbbabbabbaabaaabba
|
||||||
|
aaabababbabaabbaaaabbbbb
|
||||||
|
abaaababbaabbbbaaaaabbaaaaaabaaabbabbbabbbabbbbb
|
||||||
|
bbaaabbbbbbababbabababba
|
||||||
|
bbbbaaabbbabbbabbabaaabbbabaabaaaaaaababbabababbbbbbabaababbabbb
|
||||||
|
babbbabbbaaabbabbbabaaabababbaba
|
||||||
|
bbbabbbbbbabbabbaababbbb
|
||||||
|
baaabaaabbaabbaabaaabbabbababbab
|
||||||
|
bbabaaaaabbabbaaabbabaab
|
||||||
|
abbaabaabaaaaabbbbbaabba
|
||||||
|
aabbbbbaaaabbbbaabaaabbbbbaaabbaaababbbaaabbbaababababbaaabbbaabbbabaaab
|
||||||
|
bbbabbbaabbbbababaaabbabaabaabbbbababbaaaaaaabbbaaabbbabaababbaabbaaabaaabababba
|
||||||
|
aaaaababbbbbbaaaabaababbabbbbabaaaabbaabaabaabbabbabbbbbaaaaabba
|
||||||
|
babbabbabaabbbababaaabaa
|
||||||
|
aabaaaaabbbbaaabababbaab
|
||||||
|
babaaabbbabaabbbaaabaaba
|
||||||
|
bababaaabbaabababbbbaabb
|
||||||
|
aabbbababbaabbbaabbababb
|
||||||
|
babaabaabbbbaabbaaaaabababaaababaababbabbabbabbaabbbbbaababbaabbaaaabaaa
|
||||||
|
aabbbbabaaababbabbaaaaaa
|
||||||
|
ababaabbabaababbbbbaaaaa
|
||||||
|
aaababbbbaabbbabbbabaabbaabbbabaabbaababaaabbaaa
|
||||||
|
bbbbaaabbbaabababaababbb
|
||||||
|
ababababaabababbbbababaa
|
||||||
|
baaabaaaabaaabbbabbbbbaababaaabaabaaaabaaabaabaaaaabaaaa
|
||||||
|
abaabbbabaaabaaaababbbababbbbbaaaabaabaa
|
||||||
|
bbaabaaabbbbbbbbbaaabaaababbbbbabababbaabaaaaaba
|
||||||
|
babbababaabaaaaaaabaabba
|
||||||
|
bbbabaaaabbaabbbaabaabbbaaabababaaababaabbbabaaabbbbaababaaaaaabbabbbaba
|
||||||
|
aabaaaaaaabbabbbaabbbbba
|
||||||
|
abbbbababbabaaaaaaaaaaaaaabbbaaababbabbabbbbabaa
|
||||||
|
aaababbabababaaaabbaabba
|
||||||
|
bbbbabababbabbbaabbbabab
|
||||||
|
aaababbbbaabaaaabbbaabbb
|
||||||
|
bbbaaaabaabaaabbbbaaabab
|
||||||
|
ababbbaabaabaabababbbbab
|
||||||
|
babaabababbabbbbbbbbabba
|
||||||
|
abbbabbbabaaabbaaaaaabbbabababbabaaaaaab
|
||||||
|
baaabbbbbababaababbbbbbb
|
||||||
|
aabbbaaaaabaaaaaabbababb
|
||||||
|
aaaaabaaabababababbbbaaa
|
||||||
|
ababaabbaaaabbababaaaaaa
|
||||||
|
bbbaaaabaaaabbaabaaabaab
|
||||||
|
baaabbbbbbbabbaaabbaaaaababbabbbbbbaabbbbbbabbbabbbaaaab
|
||||||
|
bbbbbaabaaaabbabaaaaaaaabbbabbbb
|
||||||
|
bbbaabaaaabbabbbabbaabaaaaabbbbbabbababbaabbbababbababab
|
||||||
|
bbabbabbbaabbaaaabbabbaaabbbabaababbabbaaaabbbab
|
||||||
|
baaabbbababbbabbaabaabbb
|
||||||
|
aaaabbaababababaaabbbbbb
|
||||||
|
abbbbbaabbbabaabbababbba
|
||||||
|
bbbbbbbababbaabbabaaabba
|
||||||
|
abbbaabbbabaababbbaaaaabaabbbbaa
|
||||||
|
babbaabaabbbbababaaabbab
|
||||||
|
baaabbbabaabbbbabbbbaaabaaabbabb
|
||||||
|
aabbbabbabbbbabbababaabababaabaabbaaabaabbbbbbbbaabababa
|
||||||
|
bbbaabaaababaaaabbaabbaaaabbbabaabababaa
|
||||||
|
bababbaababbababaabbabaa
|
73
19/main.py
Normal file
73
19/main.py
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
Rule = list[list[int]]|str
|
||||||
|
RulesDict = dict[int, Rule]
|
||||||
|
|
||||||
|
def parse_rule(rule_str: str) -> Rule:
|
||||||
|
if "\"" in rule_str:
|
||||||
|
return rule_str[1]
|
||||||
|
else:
|
||||||
|
rule = []
|
||||||
|
for sequence in rule_str.split(" | "):
|
||||||
|
rule.append(list(int(n) for n in sequence.split(" ")))
|
||||||
|
return rule
|
||||||
|
|
||||||
|
def parse_rules(rules_str: str) -> RulesDict:
|
||||||
|
rules = {}
|
||||||
|
for line in rules_str.splitlines():
|
||||||
|
id_sep = line.find(":")
|
||||||
|
id = int(line[:id_sep])
|
||||||
|
rules[id] = parse_rule(line[id_sep+2:])
|
||||||
|
return rules
|
||||||
|
|
||||||
|
def parse_input(filename: str) -> tuple[RulesDict, list[str]]:
|
||||||
|
content = None
|
||||||
|
with open(filename, "r") as f:
|
||||||
|
content = f.read()
|
||||||
|
|
||||||
|
rules_part, messages_part = content.split("\n\n")
|
||||||
|
rules = parse_rules(rules_part)
|
||||||
|
messages = messages_part.splitlines()
|
||||||
|
return rules, messages
|
||||||
|
|
||||||
|
def find_match(message: str, rule_id, all_rules: RulesDict) -> list[int]:
|
||||||
|
rule = all_rules[rule_id]
|
||||||
|
if isinstance(rule, str):
|
||||||
|
if message.startswith(rule):
|
||||||
|
return [1]
|
||||||
|
else:
|
||||||
|
return []
|
||||||
|
|
||||||
|
result = []
|
||||||
|
for sequence in rule:
|
||||||
|
branch = [0]
|
||||||
|
for id in sequence:
|
||||||
|
new_branch = []
|
||||||
|
for last_pos in branch:
|
||||||
|
match = find_match(message[last_pos:], id, all_rules)
|
||||||
|
for pos in match:
|
||||||
|
new_branch.append(pos + last_pos)
|
||||||
|
branch = new_branch
|
||||||
|
result += branch
|
||||||
|
return result
|
||||||
|
|
||||||
|
def matches_zero_rule(message, rules: RulesDict):
|
||||||
|
return len(message) in find_match(message, 0, rules)
|
||||||
|
|
||||||
|
def part1(rules: RulesDict, messages):
|
||||||
|
count = 0
|
||||||
|
for message in messages:
|
||||||
|
if matches_zero_rule(message, rules):
|
||||||
|
count += 1
|
||||||
|
return count
|
||||||
|
|
||||||
|
def part2(rules: RulesDict, messages):
|
||||||
|
# 8: 42 | 42 8
|
||||||
|
# 11: 42 31 | 42 11 31
|
||||||
|
rules[8] = [[42], [42, 8]]
|
||||||
|
rules[11] = [[42, 31], [42, 11, 31]]
|
||||||
|
return part1(rules, messages)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
rules, messages = parse_input("input.txt")
|
||||||
|
|
||||||
|
print("part1: ", part1(rules, messages))
|
||||||
|
print("part2: ", part2(rules, messages))
|
47
19/test.txt
Normal file
47
19/test.txt
Normal file
@ -0,0 +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
|
Loading…
Reference in New Issue
Block a user