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