mirror of
https://github.com/Noettore/AdventOfCode.git
synced 2025-10-15 03:36:39 +02:00
AoC 2020: day19
Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
This commit is contained in:
480
2020-python/inputs/day_19
Normal file
480
2020-python/inputs/day_19
Normal file
@@ -0,0 +1,480 @@
|
|||||||
|
66: 69 116 | 9 115
|
||||||
|
91: 95 9 | 109 69
|
||||||
|
14: 110 69 | 15 9
|
||||||
|
4: 119 9 | 61 69
|
||||||
|
17: 9 23 | 69 93
|
||||||
|
37: 118 69 | 94 9
|
||||||
|
68: 9 80 | 69 19
|
||||||
|
117: 37 9 | 45 69
|
||||||
|
132: 9 109
|
||||||
|
74: 9 25 | 69 126
|
||||||
|
102: 122 9 | 6 69
|
||||||
|
98: 89 9 | 99 69
|
||||||
|
113: 83 9 | 7 69
|
||||||
|
92: 9 16 | 69 50
|
||||||
|
33: 9 39 | 69 133
|
||||||
|
134: 95 69 | 7 9
|
||||||
|
57: 9 7 | 69 110
|
||||||
|
31: 9 66 | 69 51
|
||||||
|
47: 9 3 | 69 83
|
||||||
|
21: 69 123 | 9 129
|
||||||
|
104: 9 86 | 69 7
|
||||||
|
40: 69 24 | 9 34
|
||||||
|
32: 9 44 | 69 88
|
||||||
|
45: 49 69 | 48 9
|
||||||
|
2: 69 88 | 9 23
|
||||||
|
5: 3 9 | 110 69
|
||||||
|
108: 20 86
|
||||||
|
76: 97 9 | 113 69
|
||||||
|
56: 9 121 | 69 58
|
||||||
|
29: 69 13 | 9 82
|
||||||
|
123: 86 20
|
||||||
|
46: 23 69 | 95 9
|
||||||
|
19: 7 69 | 109 9
|
||||||
|
12: 93 9 | 95 69
|
||||||
|
75: 85 9 | 128 69
|
||||||
|
127: 93 69 | 83 9
|
||||||
|
61: 9 7 | 69 23
|
||||||
|
78: 9 132 | 69 107
|
||||||
|
121: 88 69 | 23 9
|
||||||
|
60: 33 69 | 76 9
|
||||||
|
73: 26 69 | 100 9
|
||||||
|
116: 9 60 | 69 75
|
||||||
|
93: 69 9
|
||||||
|
38: 9 106 | 69 110
|
||||||
|
107: 9 7 | 69 86
|
||||||
|
82: 5 69 | 64 9
|
||||||
|
58: 44 69 | 23 9
|
||||||
|
34: 69 57 | 9 104
|
||||||
|
124: 69 106 | 9 44
|
||||||
|
109: 69 9 | 9 9
|
||||||
|
48: 69 44 | 9 83
|
||||||
|
28: 9 83 | 69 7
|
||||||
|
64: 9 93 | 69 7
|
||||||
|
54: 9 102 | 69 40
|
||||||
|
94: 83 69 | 7 9
|
||||||
|
80: 9 86 | 69 3
|
||||||
|
62: 86 69 | 83 9
|
||||||
|
42: 125 69 | 70 9
|
||||||
|
71: 69 112 | 9 114
|
||||||
|
8: 42
|
||||||
|
131: 69 44 | 9 7
|
||||||
|
88: 69 9 | 9 69
|
||||||
|
87: 15 69 | 7 9
|
||||||
|
3: 9 9 | 69 69
|
||||||
|
9: "b"
|
||||||
|
41: 21 69 | 78 9
|
||||||
|
65: 9 69 | 69 20
|
||||||
|
128: 134 69 | 101 9
|
||||||
|
44: 9 69 | 69 69
|
||||||
|
51: 9 18 | 69 54
|
||||||
|
55: 69 79 | 9 5
|
||||||
|
95: 69 69 | 69 9
|
||||||
|
110: 9 69
|
||||||
|
22: 92 69 | 10 9
|
||||||
|
67: 9 44 | 69 23
|
||||||
|
7: 9 20 | 69 69
|
||||||
|
90: 69 96 | 9 68
|
||||||
|
53: 111 9 | 27 69
|
||||||
|
125: 69 72 | 9 22
|
||||||
|
11: 42 31
|
||||||
|
23: 9 69 | 9 9
|
||||||
|
114: 69 105 | 9 131
|
||||||
|
81: 53 69 | 29 9
|
||||||
|
69: "a"
|
||||||
|
1: 86 9 | 95 69
|
||||||
|
18: 9 73 | 69 90
|
||||||
|
83: 20 20
|
||||||
|
130: 89 69 | 47 9
|
||||||
|
89: 44 9 | 93 69
|
||||||
|
15: 9 9
|
||||||
|
0: 8 11
|
||||||
|
105: 69 110
|
||||||
|
13: 135 9 | 14 69
|
||||||
|
6: 69 105 | 9 132
|
||||||
|
103: 120 69 | 71 9
|
||||||
|
85: 1 69 | 2 9
|
||||||
|
96: 89 9 | 12 69
|
||||||
|
101: 69 95 | 9 23
|
||||||
|
39: 69 15 | 9 109
|
||||||
|
133: 88 69 | 65 9
|
||||||
|
86: 69 20 | 9 9
|
||||||
|
122: 127 9 | 43 69
|
||||||
|
20: 69 | 9
|
||||||
|
52: 69 109 | 9 3
|
||||||
|
119: 15 69 | 88 9
|
||||||
|
77: 9 7 | 69 93
|
||||||
|
50: 87 9 | 61 69
|
||||||
|
129: 9 65 | 69 110
|
||||||
|
97: 69 95 | 9 93
|
||||||
|
111: 59 69 | 35 9
|
||||||
|
115: 69 84 | 9 41
|
||||||
|
84: 36 69 | 4 9
|
||||||
|
72: 117 9 | 74 69
|
||||||
|
135: 110 69
|
||||||
|
112: 62 69 | 124 9
|
||||||
|
43: 69 3 | 9 15
|
||||||
|
118: 109 9 | 93 69
|
||||||
|
49: 69 23 | 9 83
|
||||||
|
26: 69 67
|
||||||
|
63: 106 9 | 44 69
|
||||||
|
70: 103 69 | 81 9
|
||||||
|
25: 17 9 | 77 69
|
||||||
|
36: 91 9 | 32 69
|
||||||
|
10: 69 98 | 9 56
|
||||||
|
30: 9 109 | 69 3
|
||||||
|
126: 9 28 | 69 63
|
||||||
|
16: 9 38 | 69 30
|
||||||
|
99: 106 9 | 109 69
|
||||||
|
59: 23 9 | 3 69
|
||||||
|
120: 130 9 | 55 69
|
||||||
|
27: 69 91 | 9 108
|
||||||
|
24: 46 69 | 52 9
|
||||||
|
35: 9 93 | 69 109
|
||||||
|
100: 9 101 | 69 80
|
||||||
|
106: 69 69
|
||||||
|
79: 44 69 | 65 9
|
||||||
|
|
||||||
|
bbabbbaaaaaabbabbaabaaabbaababbbabbbabbbababbbbbbbbabbbbbbabaaaa
|
||||||
|
aabbbabbabaaaababbbaaabb
|
||||||
|
baababbbaababaaaabbaababbabbbaaabaaaabbbaaaabbaaabbaabba
|
||||||
|
abbbbaaabbaaaababbbabaaabbbabbbbbabaabab
|
||||||
|
aaabbbbbabbbbbabbabbaabbaaaaababababbbbaaaaabbbabbbbabbababbaaabaaaababa
|
||||||
|
bbbabaaaabbaaabbbababababababaaaabaabbbabaaaabbbabbabbabbbaaabbaaabaaaaa
|
||||||
|
bbaaaabbaabbbaabbabaaaba
|
||||||
|
abaabbabbaaaaabbbbbabaabbabbbababaaababb
|
||||||
|
baaaaabbbabbbbbbabababba
|
||||||
|
baaabbbaabbaabababbbaaab
|
||||||
|
baaaabaababbbbbababbbbaaabbabbaabbababababababbabbbabaab
|
||||||
|
baabbaaaaaaaaaababbaaabaaabbabaaabbababaaaabaaaaabbaabaaababaabbbaabbbaaaabbabbbabbbbbbb
|
||||||
|
ababbbaaabaabaababababbabbbaabbaaaabbbbbababbabaabbbbbaa
|
||||||
|
abaabbaabbbbbbbaaaabbbbaaaababba
|
||||||
|
ababaaabbaabbaaabbbaaaba
|
||||||
|
bababbbbbaabbabbabbabaaaabaababababababababaabab
|
||||||
|
bbaaaaababbbaababbbbbbaa
|
||||||
|
abaabababababbbaababaaaa
|
||||||
|
aabbababaaaababababbbbba
|
||||||
|
aabaababbbaaababbabbabab
|
||||||
|
baababababbbabbbbbbbbaba
|
||||||
|
bbbbaaaabbababaabbbabbabababbbab
|
||||||
|
baaabbbbbbabbbbbaaaabaaa
|
||||||
|
ababbbbabbaabbaaaababbaaaababaaabbbbaaabababbabbaababbbb
|
||||||
|
bbbbaababababbbbbabbaabbbabaaaba
|
||||||
|
abbbabbababbbaaaababbbbb
|
||||||
|
abbbbbabbabbabbbbaaabbabbaaaabbbbbaabaaabaabbaba
|
||||||
|
aabbabbabbbbbbabbbabbaaa
|
||||||
|
bbbbaaaabaababbbbabbbbab
|
||||||
|
bbababaaabbaaabbabaaaabb
|
||||||
|
bbbbbbbabaabababbbbababbbabbbaaaababaaaa
|
||||||
|
abbbbbaabbabbbaabbbababbababbaabbaaabbab
|
||||||
|
aaabaabbbbabababaaaabababababaabbbabbabb
|
||||||
|
abbabbabbbaaaabbabaaaababbbaabbabaaabaaa
|
||||||
|
babbbabbbbbabaaababaaabb
|
||||||
|
bbaaaaabaabbaaaabbbabbbb
|
||||||
|
abaaabbbbaababbaaabaaaab
|
||||||
|
bababaababbaaabbaaaabaab
|
||||||
|
bbaabaabbabaaaaabbbbbbbaaabaaabaaaabbbaabbaabbbabbaaaabaaabbabbbbbaaaaaabaabaaaaabbaaaba
|
||||||
|
abbabababbbbababbbaabaab
|
||||||
|
ababababaabbaabbbbabbaaa
|
||||||
|
bbbbbaabbbbabaaabaaaabba
|
||||||
|
aababaaabababbbabbababababaabbbaabbaaabababbaabbbaabbbaa
|
||||||
|
aabbaabaabbbbabbaabababb
|
||||||
|
aabaaaaaabbbbbbbabababbbbabaaaabbbaabbba
|
||||||
|
bbaaaaabaaabaabbaabaaaab
|
||||||
|
aaaaaaaaabbaaaaabbbbaaababaaabab
|
||||||
|
baababbaaaaaababbbbaaabb
|
||||||
|
abbbbaabaabbaabbbaaabbaaabbbbabbabbbaaaabaaaaaaaaabaabba
|
||||||
|
baabaabaaabbbabbbbaaaabaabaaaaabaaabaabbbabaabbb
|
||||||
|
abaaaaabbabbbabbbababbaaaabaaabbaabbababbabbbabababaabaabaabbbaa
|
||||||
|
aaaaaaabababbbbaaabaaabaababababababbabb
|
||||||
|
abbbabaabbabaababaaaabaa
|
||||||
|
abbbbbaabababbbbbabaaaba
|
||||||
|
aabbaabbbaabaaaabbaaabba
|
||||||
|
bbabababaaaaabaabbbbaabaaaaababb
|
||||||
|
aabbaabbbbbbbaabaaabaaba
|
||||||
|
bbbbbaabbabbbbbbabbbaaab
|
||||||
|
bbababbaabbbbabbbaabbbab
|
||||||
|
baaabbbbbababbaaaaabbbab
|
||||||
|
bbaabbbbbbbbbababaaaabbbbaaaababbbaababa
|
||||||
|
aabaabababbbbaabaaaaabba
|
||||||
|
abaabbbbaabbbaaabbbabbba
|
||||||
|
baabaaaaabbbaabaaabababb
|
||||||
|
baaabababbbababbaaaaaabb
|
||||||
|
babaababbaaaababbaabbaaaaaaabababbbbbbaabbaaabbbaaaabbabaaaaaabbaabbaaaaaabbbaaaaaabaaba
|
||||||
|
aaabaabbaaaababaaaaaaaabaabbbbbb
|
||||||
|
abbbababababbbbabaaaabab
|
||||||
|
abaabaabbbabababaaabbaaa
|
||||||
|
bbbbababaabaaaaaaabbbabbaababaabababaaabbbbabbab
|
||||||
|
bbbbaaabaabbbabbabbbabbabaababbbbababaaa
|
||||||
|
bbaabbbbaaabbabbaaababaaaabaaababbaabbba
|
||||||
|
aabaabbabbabbbaaaaaaabbb
|
||||||
|
aabbabaababbbabbaabbbbab
|
||||||
|
baababbbbbbbbbabbabbaaaababaabab
|
||||||
|
babbaababbaabbaaaaaaaaba
|
||||||
|
aaabbbbabbaaaabbaaabbaaa
|
||||||
|
aaaabbbbbaaababaababbbbabababbababaabbab
|
||||||
|
baaaaabbbaaabaababbaaabbabaabbaabbbbaaaababbaaaa
|
||||||
|
babbabaabbbbaaaababbbbaabbbbabbb
|
||||||
|
abbbbabaaabababababaabab
|
||||||
|
bbaaaaabababaababababbab
|
||||||
|
ababbaabaabbaaaabaabbaba
|
||||||
|
bbaabbaaabaababaaaabababbbbbaaba
|
||||||
|
babbbbaaaabbabbaaabbbbbb
|
||||||
|
baaabbaabababbaaabababaa
|
||||||
|
aaaabbbabaabababbabbaababbbbabbaaaabaabbaaaabababbbaabbb
|
||||||
|
bbbbbbabbaaabbaaabbbbaabbbabaababbbbbaaabbabaaabbabbbbba
|
||||||
|
baabaabaaabaabbaaabbababbabbabaabbabbaabbaaabaab
|
||||||
|
babaaaaaabbbbaabbbbbbaba
|
||||||
|
bbbaababaabbbabbaaababba
|
||||||
|
bababbbbbaaabbbbabbbabbaababbaababbbaaabbbbaaaba
|
||||||
|
abbbababbbbbaaabbabbaaab
|
||||||
|
bababaababaabbbabaaabbbbbaabababbbbaabaa
|
||||||
|
bbbaabbbaabbbbbaabaaabaaaaabbbbbaababbbbbbababbabbabababaaaababaaaabaabb
|
||||||
|
baaaaabbabaabaaaabbbbaaaaababababbbbabbb
|
||||||
|
bbbbaabbbbaaabbbbaabbbaabaaababbbbaababb
|
||||||
|
abaaaabaaabbababbbaabbba
|
||||||
|
bbabaabbbbaabbaaababbaabaaababaa
|
||||||
|
aababbbaabaabbbaaababbaabaaabaaaaabbbbba
|
||||||
|
babbaabbbbbbaabaaabbabbaaabbabaabbaabbab
|
||||||
|
aababaabbbbababbaabbbaababbabbabbaaaabaaabbaabaabbbaaabb
|
||||||
|
abaabbbbabaabbaababaaaba
|
||||||
|
aabbbaabbaaabababbaaabba
|
||||||
|
baabaaaaaaaabababaaaabab
|
||||||
|
bbaaaabbbaaabbbaabababba
|
||||||
|
bbaaaaabaabaaabbaaaaabbb
|
||||||
|
baaababaabbaaaaababbbbbbabbbbbaabbbbbbabababbbaa
|
||||||
|
abbbbabaababaabaaaaabaab
|
||||||
|
baaababaabbbabbbbaabbaab
|
||||||
|
abaabbaabababaababbaaaaaababaabb
|
||||||
|
abaababaaabbabbaabaaabba
|
||||||
|
bbaababbaabaaabbbababaabbbbabbab
|
||||||
|
babbaaaaabbabbbaabababbb
|
||||||
|
aabbaaabbabbbbaaaabbbbba
|
||||||
|
bababaaababaaababbbabbba
|
||||||
|
bababbbaabbaabababbbabbbbbababababbbbbaabaaababb
|
||||||
|
abbabbbababbbbaaaabbaabbaabbaaaaabbabbaa
|
||||||
|
aaaabababbabbbaaaabaabaaabbabbabbbbbaaaabbaaaababaabbabbbbbbbbbababbabaaaabbbaab
|
||||||
|
bbbaaaaabbaabbbaaabaabbaabaaababbabbbbbabbbabaab
|
||||||
|
bbaaaababbbaababbabbbaab
|
||||||
|
aabaaabaaaabaabbbbabbaaababbababbabaababbbbaabba
|
||||||
|
aaaabababaababbaaabaaabaababaababbaaabbbbabbbaab
|
||||||
|
bbaabbaaaaaaabababbabbbabaaaabbb
|
||||||
|
ababbababbabaababbbabbbb
|
||||||
|
bbbbbbabbbaabbbbbbbabbbbbbbbbbaaaabbbbabaaabaaba
|
||||||
|
aabaaababbaabbaababbaabaabbaabbaababbbbb
|
||||||
|
bbaaaaabbbbaabbabbabbabaabaaaaaababaabab
|
||||||
|
aababaaabbbbaabbbbababbabbabaaaabaaaababbaaaababbabbbaabbaaabaab
|
||||||
|
aabbaaaaabbbaaaaabbaaaaabbbabaab
|
||||||
|
aababbbabbbaababaabababaababbbaaabaaabab
|
||||||
|
bbbaaaababaaabaaaaaabbabaababbbaabababaaaaaabaabaaababab
|
||||||
|
abaaaabbabababbaababbbab
|
||||||
|
bbabaabbaababababaabbbbb
|
||||||
|
babbabaabbabbbbbaaabaabbbabbaaaabaaabbba
|
||||||
|
aaaaabaababbabaaabbabbbb
|
||||||
|
bbaaaabbaabaaabbbaabbaba
|
||||||
|
abaaababaaabbbbbbbabbababbaaabaa
|
||||||
|
bbbbaababbbabaaababbabab
|
||||||
|
ababababaababaaabababbbbaaabbaababbbbabababaabba
|
||||||
|
babbaabaabaabbbbbaabaaaaaaabaabbbaabbabb
|
||||||
|
aaabaaaaababbaabaabbabaaabaabbabbbbbbaaabaaabaaa
|
||||||
|
baaabbaabaabaabbbaabbbab
|
||||||
|
aaaabbbaabaabbbbabbbbbaabbbbbbbbababbbaa
|
||||||
|
bbabbbaabababaababbaabaa
|
||||||
|
bbabaabaabbababaabaaaaabaaaaaaaabbbaabba
|
||||||
|
bbaababbbaabbaaabaaaaaba
|
||||||
|
baabbabbabbababbbbbbbbaabbbaaaaabaaaabbb
|
||||||
|
babaaabaaababbabbabaaaaaaaabbaaaaabbabbabaaabbbabbaabbab
|
||||||
|
babbabaaabaaaabaabbbababbaaaabba
|
||||||
|
abbababaaabaabbaabbbaaaabbaabaababbbbbabaabbbaaaaaababbaabbbbbbb
|
||||||
|
abbabbbaabaabaaaaababaabaaaabbbbabbaaaaababababbbbabbaabaabbababaaaabaabaaabababbbabbaab
|
||||||
|
bbaababbaaaaabaaaabbbaababbbbbab
|
||||||
|
babbbabbaaabaaababaabbbabbbaaaba
|
||||||
|
aaabaaabbaababbaabbbbbaaaabbbaba
|
||||||
|
bbaaabababaaaabaababaabaaabbbabbbbbbaabbbbaabbaababbbbabbbabbabbbababbab
|
||||||
|
abbbabbabbbbaaababbbbaabbaaaaaab
|
||||||
|
babbbabbaabbaabaaabbaaabbbbbaaabbaababbbaaaaaabb
|
||||||
|
aabbaabaabaabbabbbbbbbbabbbaabbb
|
||||||
|
abaaaaabbbbbaababaaaabab
|
||||||
|
abbbbbbaaabaaaaabbabaaaa
|
||||||
|
bbbbbbbaaabababaaaabaaba
|
||||||
|
bababbaababaaaaababaaaba
|
||||||
|
abbbaababaababbbbbbbabbabbbaabaa
|
||||||
|
abbbbbaabbbababababbbbbbbaaaabaabbbaaaba
|
||||||
|
abaaaabaabaaabbbbaababaa
|
||||||
|
bbaabaaaaaaaababaabbaabbabbbbbbabaabbbbabbababba
|
||||||
|
baabbaabaaaaabaabaabaabbbbabbbab
|
||||||
|
bbaaabbaaabbabbaaaaaaabbbbbaabbabbaaaaaabaabbbaa
|
||||||
|
aaaaaaabbbbbbbabbbababaabbababbb
|
||||||
|
abbbabbbbabbbaaaabababbb
|
||||||
|
aaabaaabaaaabbabaaaabbbb
|
||||||
|
babbaaaabbbbbbabbabbabba
|
||||||
|
ababababaabbabaabbabbbbbbaabbbaa
|
||||||
|
aabbbaabaaaaaaabaaababbb
|
||||||
|
aaaaabaaaaabbbbaaaaabbababaabbababaabababaaaabaa
|
||||||
|
abbbbaabbbabaabbababaaabaaabaaabbaaaabbabbaaabba
|
||||||
|
aaabbbbabbbbaabaababababbababbbabaabaabbbbbaabbb
|
||||||
|
abbbababbaababbababaabaa
|
||||||
|
ababaaababbbbaabbbabbabb
|
||||||
|
babbbbbbbaababbbbbbabaaaabababbbbaabbabb
|
||||||
|
aabaaabbaabbaaaabaaaabab
|
||||||
|
abbbabbbbababbbbbbabababababaabbaabbbbba
|
||||||
|
bbbabaaaaababaabaaaabbaa
|
||||||
|
bbbbaaabbabbaababbbaabba
|
||||||
|
ababababbaaababababaaaaaaaabababbaaabbbbbbaaabaaaaababbabaaaabba
|
||||||
|
bababbbbbbaaababaababaabaabbababbbbbbbba
|
||||||
|
baababbaaabaabababbaabba
|
||||||
|
bbbaababbbbbbbbabbaabbab
|
||||||
|
babbbbaababbbbbbbaabbbba
|
||||||
|
aaabaabbabbbbaabbbaababa
|
||||||
|
abbbaaaaaaaaabaabbabbaab
|
||||||
|
aabababbababaabaabbbbbbbaabbaababbaaaaaaaaabbbbaaaaabbaa
|
||||||
|
bababbbbaaababababbabababbbbbbbaababaaaaaaabbaaa
|
||||||
|
bbbbaaababbabbababababaa
|
||||||
|
bbbbbaabaaaababbaabbbbba
|
||||||
|
baabbaaabbbbabbbbbabaabaaabaabbbaabbbbbb
|
||||||
|
bababbaababbbbbbbaaaaabbbbaaabab
|
||||||
|
aabbaaabbbbbbbabaababbabbbaaabaa
|
||||||
|
bbbbaaabbaababbaaababbab
|
||||||
|
ababbaabaabbababbaaaabaa
|
||||||
|
baabaabbabbbabbbbaaaabbb
|
||||||
|
abbabbbabbbaababbbbaabba
|
||||||
|
abaaabbaaaabbabbababaabbbaaaababbaaabbbbaaabaabb
|
||||||
|
baabaabbbaaaaabbbabbaaaaaabbabbbbbbaabbb
|
||||||
|
abbaabababaabababbaababbabbaabaa
|
||||||
|
bbaaaaaabbaaaabaaabbababababbbab
|
||||||
|
aabbaaabbababbaabbbbabbbbaababababbaabba
|
||||||
|
bbbbaabbaababaababbbbaabbbabbbbaababbbaaabbbbbbbbbababbb
|
||||||
|
aaaaababaaaababaabbbababaabababaabbaaabbbabbbbab
|
||||||
|
aaabbbbabbabaabbbbaaabaa
|
||||||
|
bbabababbabaaabbbbbaaaba
|
||||||
|
aabbabbabbbabababaaabaab
|
||||||
|
bbbbaabbabbbabbbaabbbbbabaabababaaabbbab
|
||||||
|
baaabbbbaabbbabbbbaaaaaaabbbaabbaababbbb
|
||||||
|
bbaaabababbbaabaabbbaababababbabbbbabbab
|
||||||
|
bbbaaaababbaaababbbabbabbbbbbaaaababaabb
|
||||||
|
abaababbbabbbbabaababbabbaaaaabbbaababaaabbaabaabbababaaabaababb
|
||||||
|
ababbaabaabaabbaabbabaaa
|
||||||
|
bababbaababbaababaabbaabaabaaaaabaabaabaaababbabbbabaaaa
|
||||||
|
babaaaaaaabbbabbaaabbbaa
|
||||||
|
abbbbaabbbbbaababbbaababaaaaaaababababbb
|
||||||
|
bbabababbababbbbbbbbbaaa
|
||||||
|
aabbbaabbababbaaaabaaababbabbabb
|
||||||
|
baababbbabbbbbbabbbbbbbaaaabababbaaabbab
|
||||||
|
bababbbbabaabbaaabbbbaaabaaaabbb
|
||||||
|
abbaabaaabababbbaaaaaaaaaabbaabbbaabaabb
|
||||||
|
bbabbbbbbbabbbbabbbbaabbabaaaabbbaabbaba
|
||||||
|
bbaabbaabbababaabbaaababbabaaabb
|
||||||
|
bbaaaabbbaabaababbbbabbaababaabb
|
||||||
|
aaaaaaababaabbbabbbbabaa
|
||||||
|
bbbbaabaabababbabbaabaaabbababbaababbbbbaaaabbaabbbabbbabbaababb
|
||||||
|
abaaabbbbbbbababbbaababa
|
||||||
|
abaaaababbbbabbaabababba
|
||||||
|
aababbbabbbbaabbbababbbbabaaaaababbbaabbbababbab
|
||||||
|
bbbbaaaaabaabaabbbbbababbaaaaaba
|
||||||
|
babbaaaabaabbaabaaaaabba
|
||||||
|
bbbbaaaabaababbabbbaabba
|
||||||
|
ababababbbaaaaaaabbabaab
|
||||||
|
bababbbabbbaababaabbabaaabbabbbabbabbbab
|
||||||
|
baabaaabbabbbbbbbbbbbaabaabababa
|
||||||
|
ababbbbaabaaaabababbbbba
|
||||||
|
aaaaababbbabbbaababaaaba
|
||||||
|
baabababbaaaaabbbbababbb
|
||||||
|
bbbbabbabaabaaaababbbbba
|
||||||
|
aababaaabbabbbabbbbbbabbbbbaabbbbaabbabb
|
||||||
|
bbabaabaabbabababbbabaaaabaabaaababaaaba
|
||||||
|
aabbbbaaabbbbabbbabbabab
|
||||||
|
abaababaababbbbbbababbab
|
||||||
|
bbbabaaaabbbbabaaaabbabb
|
||||||
|
aabbaabbabbabbabbabbabba
|
||||||
|
bbababababaabbbbbabaaaab
|
||||||
|
bbbbaaaaaabaaabbbaabbbbb
|
||||||
|
aaaababbbaababababbabbaa
|
||||||
|
abaabbaaaabaaabababbbbba
|
||||||
|
aababbaabbaaababbbbbbbbababbaabb
|
||||||
|
babbbababbbbbaabbaabbbabbaaaababbbaabbabbbbaaabbaabbbabbbaababaa
|
||||||
|
bbaaaaabbaabaabaabbaaabbababaababaabaabbabbabbaabbaaabbababbbbab
|
||||||
|
abbabbbabaabaabbabbbaaab
|
||||||
|
babbababbaabbabaabaaabbabbababbbaaababbb
|
||||||
|
baababbbbbababaaababaaaabbabbaaa
|
||||||
|
bbbabaaaaaabbbaaaaaabbabbabababbabbbbaaaaaababab
|
||||||
|
ababaaabbaaabbbbababaaabbbbbaaaababbaabaabbbbabbbbabbaaa
|
||||||
|
abaaaaababbaaaaabbabbbaabaaaabaababaaaba
|
||||||
|
abaabababaabbaabbbbaaaab
|
||||||
|
babbbbbbbaaabbaaabbbbababbaaabbbabababaabbbaaaba
|
||||||
|
baabaaabaaaaaaabbbabaabbbbabbaba
|
||||||
|
aababbaaabbbaaaaabababba
|
||||||
|
abbbbabaabaabbaaaaaaaaababbbaaaabbabbaaababaaaab
|
||||||
|
bbaaaabbaababaabaabaaabaabbabbbb
|
||||||
|
bababaabbabbbaaabbaabaaa
|
||||||
|
bbbaabababbbbaabbabbabaabbaabaaa
|
||||||
|
babaaaaaabaaabbbbbababbb
|
||||||
|
abbbbbaabaabaabababbabba
|
||||||
|
baababbaaabbababababbbaa
|
||||||
|
aaabbbbaaaabababbabaabba
|
||||||
|
abaabbbabbbaabababaaabab
|
||||||
|
babbbaaaaabaaabababbbaba
|
||||||
|
abaabaabbabbaabaabaababb
|
||||||
|
aaaaaaabbabbaabaaaabbbab
|
||||||
|
bbabbbaabaabaababbaaaaab
|
||||||
|
bbaaaabbbbbbbbabababaabb
|
||||||
|
bbaababbbaaabbbabbaabbab
|
||||||
|
aaababababbabbabbabbabab
|
||||||
|
aabbaaaababaaaaaabbbabbaabaabbbaababaaaa
|
||||||
|
aabaaaaaabbaabababaaabab
|
||||||
|
baabaaabbbbababaababbbbb
|
||||||
|
ababababbbbbaababbaabaaa
|
||||||
|
bbbababaaababbbaabaaabab
|
||||||
|
bbbababbbbababababababbb
|
||||||
|
baababbbbbbbbbabaabbbbaabbbbbaaa
|
||||||
|
ababbbbaaabbaabbbbaabbbb
|
||||||
|
baababbababababbbbbbbbbaabbbbaabbbaaaaabbbaabbab
|
||||||
|
abaabbbabaababbaabbaabaa
|
||||||
|
aabbabbabbbbaaaaabaababb
|
||||||
|
baababbaabbaababaabaaaaabbbabbba
|
||||||
|
aabaaaaabbbbababbbbbaaaabbbabaabaababbab
|
||||||
|
aaaaaaaaabbaaabababbbbab
|
||||||
|
baaabbbbabbbaaaaababbbab
|
||||||
|
abaababaaababaaabababbaaabbbababbbabbbaaaaababbaaaaaabbaaaabbbbb
|
||||||
|
aabbbaaaabaabaaabbbbbbababbbbaaabbbabbaa
|
||||||
|
babbaaaaaabbbaaaabbbbbaaaabbabbabbbaabaa
|
||||||
|
bbbababbbabbbbaaaabaabaa
|
||||||
|
babbbabbabbbbbaaabbabbbb
|
||||||
|
aababaaabbaaaaababaaaaaabbbbbbababababbbbaaaabbabaababaababbabbaabbbbaaababababa
|
||||||
|
bbbabaaabaababbaaabaaaab
|
||||||
|
baabaababbabbbbbbaabbbbb
|
||||||
|
bbbbbbabaaababbbabbabbaabaabbbba
|
||||||
|
bababbabbaabbaaabaababbbabbbaababbabbaaaaababbabbbbbaaabbabbaaaaabaabbba
|
||||||
|
abbaaabbabbababaabaaabaa
|
||||||
|
bbaaababaabbabaaabaaabaa
|
||||||
|
bbabbbaaaaaaaaaaaaaabaab
|
||||||
|
bbaaaaabbbababbabbbaaabb
|
||||||
|
aaaaaaabababbabababaaaab
|
||||||
|
abbabbabbabbbbaabbabbabb
|
||||||
|
aabaaaaaabbbaaaaaabbabababaaabbbbbabaaabbabaabaabaaaabaa
|
||||||
|
bbbbbaabbbaaaaaababbbbbbaaaabbababbaabbbabbbbbabbaaaabab
|
||||||
|
aaabaaaaabbbabaabbaaaaba
|
||||||
|
aababaabaabbaaaabaaaaaaa
|
||||||
|
aaaabbbaaaabababaabbbaababbabaaabaaaaaaa
|
||||||
|
baabbaabbaabaabbbababbbbbbbabbaa
|
||||||
|
bbbaababbbbbaaaaaaaabaab
|
||||||
|
bababaabbabbabaabbabbaaa
|
||||||
|
baabbaaababaaaaabbaaaaaabbbabbbaaabbbaaabbbabaaaaababbbbbbbaaaab
|
||||||
|
abbaababbaababababaabbaaababbaababbaabbbaaaaaabb
|
||||||
|
babbabaaaaababbaabbaabaabbbbabba
|
||||||
|
babbaabbbabbaabbaaaabaab
|
||||||
|
aababbaaaaabaaabaabbbaabaabbabbaabbbbbbabbaabbbbbababaaa
|
||||||
|
aaaabbbababaaaaaaabaabbb
|
||||||
|
bbaababbabbbaaaaababaaabbbabbbbaaabbbbaababbababbbabbabb
|
||||||
|
aababbbaaaabaaaaabaababb
|
||||||
|
baaababbabbbbbbbbabaaabbabaabaabbbabbaba
|
||||||
|
abbabbabaaaaaabbaaabbabbbbbabaababbababbbbbaabba
|
||||||
|
abbbbabaaabbababbbbaaaba
|
||||||
|
abbbaababbabbabbbaabbabbbbabaaaa
|
||||||
|
abbbbaabaabbbabbaaaabbaa
|
||||||
|
aaabbbbaaaaabbababbaaabbaaaaabbb
|
||||||
|
bbbbaaabaaabaaabbaabbbaa
|
||||||
|
babbbabbbabbabaaabbabbbb
|
||||||
|
ababbbbaabbbabbbaaabbaaa
|
||||||
|
bbabbbbbababbaabaaaabbbb
|
||||||
|
bbbababbbbbbbbbabbbabbbb
|
||||||
|
abbbabbbbababbbbabbabbbb
|
153
2020-python/solutions/day_19.py
Normal file
153
2020-python/solutions/day_19.py
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
"""AOC 2020 Day 19"""
|
||||||
|
|
||||||
|
import pathlib
|
||||||
|
import time
|
||||||
|
import re
|
||||||
|
|
||||||
|
TEST_INPUT = """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"""
|
||||||
|
|
||||||
|
TEST_INPUT_2 = """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"""
|
||||||
|
|
||||||
|
def read_input(input_path: str) -> str:
|
||||||
|
"""take input file path and return a str with the file's content"""
|
||||||
|
with open(input_path, 'r') as input_file:
|
||||||
|
input_data = input_file.read().strip()
|
||||||
|
return input_data
|
||||||
|
|
||||||
|
def extract(input_data: str) -> tuple:
|
||||||
|
"""take input data and return the appropriate data structure"""
|
||||||
|
rules = dict()
|
||||||
|
messages = list()
|
||||||
|
rules_input, messages_input = input_data.split('\n\n')[0:2]
|
||||||
|
|
||||||
|
for rule_input in rules_input.split('\n'):
|
||||||
|
rule_id, rule = rule_input.split(': ')
|
||||||
|
rules[rule_id] = rule
|
||||||
|
|
||||||
|
messages = messages_input.split('\n')
|
||||||
|
|
||||||
|
return rules, messages
|
||||||
|
|
||||||
|
def get_regxp(rule_num: str, rules: dict):
|
||||||
|
rule = rules[rule_num]
|
||||||
|
if re.fullmatch('"."', rule):
|
||||||
|
return rule[1]
|
||||||
|
rule_parts = rule.split(' | ')
|
||||||
|
or_rules = []
|
||||||
|
for part in rule_parts:
|
||||||
|
numbers = part.split(' ')
|
||||||
|
or_rules.append(''.join(get_regxp(n, rules) for n in numbers))
|
||||||
|
|
||||||
|
return f"(?:{'|'.join(or_rules)})"
|
||||||
|
|
||||||
|
def get_regxp_upd(rule_num: str, rules: dict):
|
||||||
|
if rule_num == '8':
|
||||||
|
return f"{get_regxp_upd('42', rules)}+"
|
||||||
|
elif rule_num == '11':
|
||||||
|
rule_11 = (f"{get_regxp_upd('42', rules)}{{{n}}}{get_regxp_upd('31', rules)}{{{n}}}" for n in range(1, 22))
|
||||||
|
return f"(?:{'|'.join(rule_11)})"
|
||||||
|
|
||||||
|
rule = rules[rule_num]
|
||||||
|
if re.fullmatch('"."', rule):
|
||||||
|
return rule[1]
|
||||||
|
rule_parts = rule.split(' | ')
|
||||||
|
or_rules = []
|
||||||
|
for part in rule_parts:
|
||||||
|
numbers = part.split(' ')
|
||||||
|
or_rules.append(''.join(get_regxp_upd(n, rules) for n in numbers))
|
||||||
|
|
||||||
|
return f"(?:{'|'.join(or_rules)})"
|
||||||
|
|
||||||
|
def part1(entries: tuple) -> int:
|
||||||
|
"""part1 solver"""
|
||||||
|
rules, messages = entries
|
||||||
|
regxp_0 = re.compile(get_regxp('0', rules))
|
||||||
|
return sum(regxp_0.fullmatch(x) is not None for x in messages)
|
||||||
|
|
||||||
|
def part2(entries: tuple) -> int:
|
||||||
|
"""part2 solver"""
|
||||||
|
rules, messages = entries
|
||||||
|
regxp_0 = re.compile(get_regxp_upd('0', rules))
|
||||||
|
return sum(regxp_0.fullmatch(x) is not None for x in messages)
|
||||||
|
|
||||||
|
def test_input_day_19():
|
||||||
|
"""pytest testing function"""
|
||||||
|
entries = extract(TEST_INPUT)
|
||||||
|
assert part1(entries) == 2
|
||||||
|
entries = extract(TEST_INPUT_2)
|
||||||
|
assert part2(entries) == 12
|
||||||
|
|
||||||
|
def test_bench_day_19(benchmark):
|
||||||
|
"""pytest-benchmark function"""
|
||||||
|
benchmark(main)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""main function"""
|
||||||
|
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||||
|
start_time = time.time()
|
||||||
|
input_data = read_input(input_path)
|
||||||
|
entries = extract(input_data)
|
||||||
|
print("Part 1: %d" % part1(entries))
|
||||||
|
print("Part 2: %d" % part2(entries))
|
||||||
|
end_time = time.time()
|
||||||
|
print("Execution time: %f" % (end_time-start_time))
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@@ -28,3 +28,4 @@
|
|||||||
| [Day 16](https://adventofcode.com/2020/day/16) | [11.108ms](./2020-python/solutions/day_16.py) | [2.903ms](./2020-python/solutions/day_16.py) |
|
| [Day 16](https://adventofcode.com/2020/day/16) | [11.108ms](./2020-python/solutions/day_16.py) | [2.903ms](./2020-python/solutions/day_16.py) |
|
||||||
| [Day 17](https://adventofcode.com/2020/day/17) | [743.804ms](./2020-python/solutions/day_17.py) | [836.255ms](./2020-python/solutions/day_17.py) |
|
| [Day 17](https://adventofcode.com/2020/day/17) | [743.804ms](./2020-python/solutions/day_17.py) | [836.255ms](./2020-python/solutions/day_17.py) |
|
||||||
| [Day 18](https://adventofcode.com/2020/day/18) | [10.263ms](./2020-python/solutions/day_18.py) | [2.053ms](./2020-python/solutions/day_18.py) |
|
| [Day 18](https://adventofcode.com/2020/day/18) | [10.263ms](./2020-python/solutions/day_18.py) | [2.053ms](./2020-python/solutions/day_18.py) |
|
||||||
|
| [Day 19](https://adventofcode.com/2020/day/19) | [145.980ms](./2020-python/solutions/day_19.py) | [259.030ms](./2020-python/solutions/day_19.py) |
|
||||||
|
Reference in New Issue
Block a user