Compare commits
No commits in common. "956228b4871e1fb1a68bcd6bc3913925f925e3f5" and "cbffd4fd59aa28e30f273c7f55cc385997784d5e" have entirely different histories.
956228b487
...
cbffd4fd59
7 changed files with 1 additions and 564 deletions
|
@ -22,8 +22,7 @@ https://adventofcode.com/2020/
|
||||||
|14 | | `**` | |
|
|14 | | `**` | |
|
||||||
|15 | `**` | | |
|
|15 | `**` | | |
|
||||||
|16 | | `**` | |
|
|16 | | `**` | |
|
||||||
|17 | | `**` | |
|
|17 | | | |
|
||||||
|18 | | `**` | |
|
|18 | | `**` | |
|
||||||
|19 | | `**` | |
|
|
||||||
|
|
||||||
`test.sh` can be used to run all solutions and automatically compares them to (my) puzzle inputs and the expected outputs.
|
`test.sh` can be used to run all solutions and automatically compares them to (my) puzzle inputs and the expected outputs.
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
359
|
|
||||||
2228
|
|
|
@ -1,8 +0,0 @@
|
||||||
.##..#.#
|
|
||||||
#...##.#
|
|
||||||
##...#.#
|
|
||||||
.##.##..
|
|
||||||
...#.#.#
|
|
||||||
.##.#..#
|
|
||||||
...#..##
|
|
||||||
###..##.
|
|
|
@ -1,2 +0,0 @@
|
||||||
147
|
|
||||||
263
|
|
465
data/day19.input
465
data/day19.input
|
@ -1,465 +0,0 @@
|
||||||
90: 86 86
|
|
||||||
122: 86 1 | 99 20
|
|
||||||
116: 86 58 | 99 75
|
|
||||||
20: 86 123
|
|
||||||
62: 99 95 | 86 113
|
|
||||||
81: 76 99 | 90 86
|
|
||||||
106: 120 86 | 93 99
|
|
||||||
73: 99 72 | 86 45
|
|
||||||
117: 131 99 | 72 86
|
|
||||||
92: 86 96 | 99 98
|
|
||||||
13: 3 99 | 118 86
|
|
||||||
56: 90 86 | 58 99
|
|
||||||
85: 72 99 | 51 86
|
|
||||||
51: 99 99 | 86 86
|
|
||||||
59: 99 25 | 86 62
|
|
||||||
65: 99 15 | 86 97
|
|
||||||
112: 86 13 | 99 38
|
|
||||||
46: 33 86 | 2 99
|
|
||||||
10: 67 86 | 68 99
|
|
||||||
33: 120 99 | 76 86
|
|
||||||
38: 35 86 | 125 99
|
|
||||||
26: 86 10 | 99 55
|
|
||||||
1: 33 99 | 60 86
|
|
||||||
8: 42
|
|
||||||
16: 51 86 | 93 99
|
|
||||||
107: 40 99 | 2 86
|
|
||||||
40: 17 120
|
|
||||||
34: 86 82 | 99 127
|
|
||||||
88: 93 17
|
|
||||||
2: 99 51 | 86 120
|
|
||||||
32: 100 99 | 7 86
|
|
||||||
113: 86 127 | 99 82
|
|
||||||
14: 73 86 | 44 99
|
|
||||||
25: 86 101 | 99 56
|
|
||||||
130: 110 86 | 109 99
|
|
||||||
19: 86 4 | 99 49
|
|
||||||
30: 86 92 | 99 70
|
|
||||||
27: 17 86 | 86 99
|
|
||||||
94: 47 86 | 53 99
|
|
||||||
115: 86 107 | 99 84
|
|
||||||
15: 76 99 | 58 86
|
|
||||||
58: 86 99
|
|
||||||
105: 130 86 | 32 99
|
|
||||||
71: 120 99 | 131 86
|
|
||||||
12: 99 131 | 86 82
|
|
||||||
60: 72 86 | 93 99
|
|
||||||
84: 86 102 | 99 80
|
|
||||||
44: 99 76 | 86 72
|
|
||||||
125: 76 99 | 131 86
|
|
||||||
18: 99 71 | 86 52
|
|
||||||
129: 37 86 | 111 99
|
|
||||||
102: 99 131 | 86 76
|
|
||||||
66: 86 105 | 99 41
|
|
||||||
99: "a"
|
|
||||||
9: 99 18 | 86 65
|
|
||||||
131: 17 99 | 99 86
|
|
||||||
39: 76 99 | 93 86
|
|
||||||
64: 115 99 | 114 86
|
|
||||||
57: 86 48 | 99 94
|
|
||||||
35: 72 86 | 51 99
|
|
||||||
0: 8 11
|
|
||||||
77: 86 83 | 99 106
|
|
||||||
118: 72 86 | 75 99
|
|
||||||
47: 99 103 | 86 85
|
|
||||||
23: 99 27 | 86 76
|
|
||||||
48: 119 99 | 78 86
|
|
||||||
49: 86 51 | 99 45
|
|
||||||
67: 86 120
|
|
||||||
61: 86 72 | 99 127
|
|
||||||
108: 72 99 | 72 86
|
|
||||||
95: 86 58 | 99 90
|
|
||||||
83: 86 27 | 99 131
|
|
||||||
75: 86 99 | 99 99
|
|
||||||
101: 51 99 | 27 86
|
|
||||||
103: 90 99 | 90 86
|
|
||||||
128: 86 69 | 99 33
|
|
||||||
70: 99 14 | 86 19
|
|
||||||
52: 127 86 | 90 99
|
|
||||||
21: 86 24 | 99 59
|
|
||||||
22: 86 63 | 99 12
|
|
||||||
42: 79 86 | 66 99
|
|
||||||
97: 51 17
|
|
||||||
104: 86 33 | 99 28
|
|
||||||
100: 99 16 | 86 39
|
|
||||||
72: 99 86
|
|
||||||
78: 86 43 | 99 50
|
|
||||||
55: 86 6 | 99 34
|
|
||||||
45: 99 99
|
|
||||||
5: 86 46 | 99 77
|
|
||||||
93: 99 99 | 99 86
|
|
||||||
6: 131 99 | 51 86
|
|
||||||
110: 71 86 | 28 99
|
|
||||||
68: 90 86 | 27 99
|
|
||||||
29: 87 86 | 122 99
|
|
||||||
80: 86 93 | 99 131
|
|
||||||
54: 120 86 | 75 99
|
|
||||||
43: 93 86
|
|
||||||
98: 99 103 | 86 117
|
|
||||||
7: 101 86 | 88 99
|
|
||||||
127: 17 86 | 99 99
|
|
||||||
96: 86 12 | 99 61
|
|
||||||
41: 99 5 | 86 112
|
|
||||||
79: 86 57 | 99 21
|
|
||||||
11: 42 31
|
|
||||||
86: "b"
|
|
||||||
111: 45 99 | 72 86
|
|
||||||
63: 76 99 | 127 86
|
|
||||||
124: 86 81 | 99 116
|
|
||||||
28: 86 75 | 99 58
|
|
||||||
82: 99 86 | 86 99
|
|
||||||
121: 64 86 | 74 99
|
|
||||||
87: 86 124 | 99 104
|
|
||||||
74: 99 26 | 86 9
|
|
||||||
31: 126 99 | 121 86
|
|
||||||
50: 99 72
|
|
||||||
119: 34 86 | 36 99
|
|
||||||
36: 86 82 | 99 75
|
|
||||||
91: 86 131
|
|
||||||
3: 58 99 | 27 86
|
|
||||||
114: 99 129 | 86 22
|
|
||||||
24: 86 89 | 99 128
|
|
||||||
53: 91 99 | 95 86
|
|
||||||
126: 29 86 | 30 99
|
|
||||||
109: 99 108 | 86 23
|
|
||||||
17: 86 | 99
|
|
||||||
76: 86 86 | 99 86
|
|
||||||
120: 17 17
|
|
||||||
89: 54 86 | 37 99
|
|
||||||
4: 99 131 | 86 58
|
|
||||||
69: 27 17
|
|
||||||
37: 99 58
|
|
||||||
123: 86 76 | 99 82
|
|
||||||
|
|
||||||
bbababbaabbaaabaaaabbabbbbbababbbababaaaabbaabaaaaaabaaaabbaabba
|
|
||||||
aaabbbabbabbbbbbaabbabababaaaaabaaabaaaaabaaaabbbbabbabb
|
|
||||||
babaabaabbabaaaaabbababb
|
|
||||||
babbabbaababbaaaababbaabbbbbaabaabbbababaabbbabbbabababaabbabbabaabbbaababbbbbbb
|
|
||||||
bababbbabaaabbaabbababab
|
|
||||||
aaaaabaaaabbaabaaaaabbaa
|
|
||||||
aabbbaaaaababbaaabaabbbbabbbaaaaabbaaaab
|
|
||||||
baaaabaaaabbababbaaabbab
|
|
||||||
ababababaaaaabaaaaabbaaa
|
|
||||||
baabaababaaabbaabbbababb
|
|
||||||
abbbabbbbbabaaabaabbabbb
|
|
||||||
aaababbbabababbbaabbaaaabababbaa
|
|
||||||
babbaaabbaaaabaababbbabb
|
|
||||||
bbbabbbabbabaaaabaabaaab
|
|
||||||
bbbbaaabaaaabbbaabbbbabb
|
|
||||||
aaaaaaaaaaaaabaabaaaabbb
|
|
||||||
babaabbababbabaababbaaba
|
|
||||||
bbabaaaabaaabbaaaabbbbbbbabbabbbbaaaabab
|
|
||||||
babaabbbbbbbbbaabbaaabaa
|
|
||||||
baabbbabababbababaabbbaa
|
|
||||||
baaaabaaaabaaaaaaaaaaaab
|
|
||||||
aaabbbbbbbabbbabbbbbabbb
|
|
||||||
bbabaaabaaababaabbbbbbba
|
|
||||||
baaabaaabbabbaaaaaaababb
|
|
||||||
abbabaabbaaaaaaaaabaabba
|
|
||||||
aaaabababbbbbbaabababbab
|
|
||||||
bbbbbbabababbaabaabbbabaaaabbabbaabbabbbbaababbbabaabbbbabbabaabababaabaaaaaabab
|
|
||||||
bbbabbaaaababbabaabaabbbabbbabab
|
|
||||||
bbbabbbababbbbaabbbbbbab
|
|
||||||
baabaaaaabaabbbbaaabaaaabbbbbbab
|
|
||||||
bbbbaaaaaabaaaaaabbbabaababbaabb
|
|
||||||
bbbbbabaabaaaaababbaaabbbaababbbbbaaabaa
|
|
||||||
aaabaabaaaabaaaaababbaaaaaababbbaaababab
|
|
||||||
bbaaaababbbaaabbabbabbabbabbbbabbababaabbbabbabbabaaabbabaaaabba
|
|
||||||
aababbbaaaabbbaabbbbababbabbaaaa
|
|
||||||
abbbaabbabaaaaababaaaaaa
|
|
||||||
babbabbabbaabababbabaaaaaabbbabbbabaabbbbabbbaabbaaaaaba
|
|
||||||
aabbbaabaaabbabbbbaabaaabbbabbababbaababababbbba
|
|
||||||
baabbabbbaabbbbbbbaaaaaababababaaabbbbabaabaabbaaaaabbab
|
|
||||||
bbabaaabbbbbaaaababbabbb
|
|
||||||
baabaabaaababbbabaaababa
|
|
||||||
aaaabbbbabbbaabbababaaaa
|
|
||||||
babbababaaaababababaabab
|
|
||||||
bbbaabbbabbbabaabbbabbbaaabbaabbabbbbbbbaaaabaaabaaabbaabbbbabbb
|
|
||||||
aabbaabbabbabbbabaaaabba
|
|
||||||
abaabbaaaaabbabbaaabbbabbabbaaaa
|
|
||||||
bababaabbaaabaaababbababbbbbbabbbaaabaab
|
|
||||||
aaababbbaabbaabbbbaaabbaaababaaabaabbbaa
|
|
||||||
abbaaababbaaababbaaaabba
|
|
||||||
bbaababaaabbabaaababbaabbaabbbbaaabbaabbabaaabbabbabbbbbabbbaaabbbababbb
|
|
||||||
bbaaabbbbbaaabbabaaaabba
|
|
||||||
abbbabaabbaabaaaaaabbaaa
|
|
||||||
bbbabaabbbbbbbaababbbbaaabbbabba
|
|
||||||
abbabbaaaaaabbbbbbabaaabbaaaaaab
|
|
||||||
bbaababaaaababaabaabbababbbbbaab
|
|
||||||
aabbababaaabbbaaaaabbabbaabbbbbbbabbbabb
|
|
||||||
aaabbbaaaababbabbababbbb
|
|
||||||
aababbababaaabaabababbbb
|
|
||||||
bbabbbabbbabbbabababbbba
|
|
||||||
aaabaaaaabbbbbbbbaaaaaab
|
|
||||||
babaabbbaaabbbabbaaaaaab
|
|
||||||
bbaabbbaaabbababbbaaabaa
|
|
||||||
aabbbaaaaaaaaaaaaaaaabaaaabbbbbabbabaaaaabbbbbab
|
|
||||||
abaaaaabaabbbaaaabbbaaab
|
|
||||||
abaabbabbabbbbbabbababaa
|
|
||||||
baaabbaaaabbbabbaaaabaaa
|
|
||||||
abbbbbaabbaaababbbbabaab
|
|
||||||
aababbaaaabbbbbabaababaabababaabbabbbaba
|
|
||||||
abaabaaabbabababababababbaabaaabbbaabaabaabbbababbbabbbabbabbbbbabababaabbabbaba
|
|
||||||
aaaaaabaaaaabababbbabbabbbaabbabaababbbb
|
|
||||||
babaaaababaaababaabbabba
|
|
||||||
ababbaaaabaaabbbbababaaa
|
|
||||||
baababbbabbbbaaabaababbbabbbbaababaaabaaaabbaabababababaaaaababa
|
|
||||||
bbaabbababbabaabbbabbabb
|
|
||||||
bbabbbbaababbaabbbbabbbbbabbabaaaaabbbababbbbaabaaaaaabbbababbbbbabbbabb
|
|
||||||
baaaaaaababaaaabbbbbaaaaabaabbbbbaababbb
|
|
||||||
aabbabaaabbbbbaabbbaabab
|
|
||||||
ababbabbbbaabaaabababaabaaaabbab
|
|
||||||
aaabbabaaaaabbbbabbbbaaa
|
|
||||||
bbaaaaabbaaaabaaabbbaaaa
|
|
||||||
abbbaaaaabbbabbbabbabaaa
|
|
||||||
bbaaaabbaaaababababaababaaaabbbaaabaabaaaababbabbbaaaabaabaaabbaababbbaaabaabbaababbbaabaabaabbb
|
|
||||||
bbaabbaaaababbababbaaabbbabbbababbbbbbaabbaabababbababaababbaababbbaaabbaabbbbab
|
|
||||||
aababbabaaabaaaabbaabbaa
|
|
||||||
babaaabbaaabaababbabbbbabbbaabaabbaabbbababbabaabababaabbbababbabbbbaababbaabaaa
|
|
||||||
baabbabbbbaabbbaaabbaaab
|
|
||||||
abaaaaabbbaababaabbaabab
|
|
||||||
aaabbbbbaaababaaabababaabbaababb
|
|
||||||
bbaaababbaabbbbababbbbbabbaabbabbbbbaaabbbabbabb
|
|
||||||
bbabbbbaabbbbbbbbaaaabba
|
|
||||||
aababbabaaabaababaabbabbabaaaabaaabbbabaaabbbabbbabaaaaa
|
|
||||||
babbbbbbaabbbaabbabbbabb
|
|
||||||
baabbbbaababbaabaaabbabb
|
|
||||||
aaabaabaabbbaabababbbbaaaaaabaabbabaabbbabaaabbbaaaabababaababbbababbabaaaaaabab
|
|
||||||
aabbabaabaaaaaaababbababaabaabba
|
|
||||||
ababbababbaabbbaabaabaababbaabbbaaaabbaa
|
|
||||||
aabbababaabbbbbbbaababaababbabba
|
|
||||||
baabbabbbaaaaaaaaaaabaaa
|
|
||||||
baabbbabaaabbabbbbbbbabb
|
|
||||||
babaabaaaabaaaaabbbaaaab
|
|
||||||
baaaaaaababbbbbaabbbbbab
|
|
||||||
bbabbbabababbaabbaaababa
|
|
||||||
bbbbabababaaaaababbabbbababbabaaabbaabababbababaaaaabbab
|
|
||||||
aabbbbbababbabaaabababaaaaabaababbbabbab
|
|
||||||
babbbbaabaabbbbabbbbbabb
|
|
||||||
aaabbbabbabaabbbabaaababbaaabaab
|
|
||||||
abbaaabbbbaaabbbbabbbbbbbbbbabaa
|
|
||||||
bbabbabaaaabbabbbbbababababbaaabbabaaaaababaaaba
|
|
||||||
bbaabaaaaabaaababaababbb
|
|
||||||
baabbaaaaaababbababbaabaabababbbabaaabbbbbbaaabbbbababaababaabbbbbabaaababbaaaabbbaaaaaa
|
|
||||||
aaabaaabbbbbaaaabbbbabba
|
|
||||||
abbbaabbbabbbaaaaabaabab
|
|
||||||
aaabbbaabbaabbabbaabbbbbbbabbaaaaaaabbbaaaaaabab
|
|
||||||
aaaaaaaaaabbaabaaabbbbaabbaaaaabaaabbaababbbbbab
|
|
||||||
bbbbababbabababbbbababba
|
|
||||||
abaaaabaabbbbaaaabbbbbbbbaababbabbbbaabbaabbbbbabaaabbbaaaaaabab
|
|
||||||
bbbbbbaabaabaaaaaaaaabbaaaaaaababbabbabaabbabbab
|
|
||||||
abbbbbbbbaaaabaaaababbabbbbbaabb
|
|
||||||
bababaabaababbbaabbaabab
|
|
||||||
abaaaabaabaabbabaaabbbbbbbaaaaaa
|
|
||||||
aaaaaabaababababbbaabbbabbaaaaba
|
|
||||||
abaabaabbbababbababbaabb
|
|
||||||
baaabbaabbbaabbbbabbabbb
|
|
||||||
baababaabaaabaaaabbabbbabababbaabbbbbbba
|
|
||||||
bbbaabbabbbabaabbaaabbaaaabababaaabbbbaaababbaab
|
|
||||||
abaabbbbabbabbbbaaaaabab
|
|
||||||
bbbabaababaabbbbbbbaaaab
|
|
||||||
abbaaabaaaaaaabaabaaaabaabbaaabbabbabbbbaabaabab
|
|
||||||
aabaaaaababbbaaaaaaababb
|
|
||||||
aaabbbaaabaabbbabbbbabaa
|
|
||||||
aaaaabaababaabbabaaaabaaabbaaaaa
|
|
||||||
aaaabaabababbbbbaaaaaaaaaabbbbbbbbbbbbababbbbabbbaaabaab
|
|
||||||
bbabbbabbaabbbbaaaabaabaabaaabbbaaaaaaababbbaaab
|
|
||||||
aabaaabaaabbababbabababa
|
|
||||||
babbbaaaaabbbaabbbabbababbbbbbbaabbababa
|
|
||||||
abbaabaabaabbaaaabaaaaaaababbaab
|
|
||||||
abaaaababbaabababaabbbababbabaabaaababbbbbbbabba
|
|
||||||
bbaaaabababbabababbabaabbbaaabbbbbbabbaa
|
|
||||||
aabbaabbaaabbbaabaaaaaab
|
|
||||||
bbaabbabaaaabbbabbabbabb
|
|
||||||
abbaaabbabbbaaaabbbbbaaabbabbabababbbbbbabaabbbbbabbaaaaabaababb
|
|
||||||
ababbaabbabbbbbbbbabaaaabbbbababbaaabbbabaabaabb
|
|
||||||
aaabbabaaabbbabaaaaabaabaaababbaabbbabbababbbbabaabbabbb
|
|
||||||
abbabbaaabababababbbabaaaaaabaabbabaabab
|
|
||||||
babaabaaababbaaaaabbaaab
|
|
||||||
aaaaaababababaababbaaaab
|
|
||||||
ababbabaaababbaaabbbaababaaaaabb
|
|
||||||
bbaaabbabaaaabaabbabaaaaaaaababbbbbabaaa
|
|
||||||
bababbbabbaabbabbbbbabba
|
|
||||||
bbaaabbaaabbbbaabababaabbabbaaaa
|
|
||||||
aaaabaabaaaaabbaababbaabababbaaa
|
|
||||||
ababbabaabbabbbbbbaababb
|
|
||||||
aabbbbbbbaaabbbababababa
|
|
||||||
bababbbaabbabbaabaaaabab
|
|
||||||
bbaaabbbaabbbbbaaabaabba
|
|
||||||
aabbbbaaababbbabbbaabbbb
|
|
||||||
baaaabaaabaaabbbababbbabaabbbabbaabbbaabbbbbbbabaaaabbaababbaabaaababbbb
|
|
||||||
babbbbabbbbababbabaaabba
|
|
||||||
babbbbaaababbbbbbabbbaaabaabbaab
|
|
||||||
bbbbbbaaaabbbabbaaabaaaabbbabaaaaabaabab
|
|
||||||
babbbbbabbabaaaaaaaaabbb
|
|
||||||
ababbbabbabaabbaaaabbabbaaaabbaa
|
|
||||||
bbbabbbabababbbabbaaabbbbbbbaaba
|
|
||||||
abbabbaaabaaababbaaaaabb
|
|
||||||
bbababbabababaaaaababbbbbabbbaabababbaabaabbbaababbaaaba
|
|
||||||
babbababaabbbaaaabbaaaab
|
|
||||||
abbaaabbbaaaaaaabbababab
|
|
||||||
bbbabbbabbabbabababbbbab
|
|
||||||
babbbaaabababaabaababbbababbbbbaabbbbaba
|
|
||||||
bbbababaabaabaabababbbbbabaaaababbabbbabbbaaabaababbaaaaabaaaabbaaaabbab
|
|
||||||
babababbabbabbbaaaaabbab
|
|
||||||
baabbabbabaabbaaababbbbb
|
|
||||||
aabbabaaaaaaabbaabbabbbaababbaabababbbbbbabbbababbbaaaba
|
|
||||||
aababababbbabbbaabbaaaaa
|
|
||||||
aabababaaabaaabaaabbaababbbabbaabbaaababbbbbbbababababbaabbbbbab
|
|
||||||
abbbaabbbbabbbbaabbabbab
|
|
||||||
aaaabbbbaabbaabbbabaaaaa
|
|
||||||
aababbababaabbbaaabaabba
|
|
||||||
baaaaabaaaaaabbababaabbbabaaaabbabaabbbaabaaabbaabaababaaaabbaaa
|
|
||||||
ababbaaabaababaabbbbbababaaabbbb
|
|
||||||
babbabababbbaaaabbbaabaa
|
|
||||||
baabbabbbaabbabaaabbbbaabbbaabbaabbabaababaaabaabbaababbbaaaabbb
|
|
||||||
abaabbbbaaaabaabbbbbbbba
|
|
||||||
baabbabaaaababaaabbaabbbbbbbbbbb
|
|
||||||
abbaaaabababbbbabababaabbbaaabbaababaabbbaaaaaaaaabaaaab
|
|
||||||
bbbabbabaaaabbababbaabababaaaabaaabbaaaabbbababa
|
|
||||||
bbbababababbbbbbababbbba
|
|
||||||
bbbbbbaaaaabbbaabaababab
|
|
||||||
aaaabbbaabbaaababaaababa
|
|
||||||
bbaaabbabbabaabaaaabaaaaabaaabbabaaababb
|
|
||||||
ababbabaabaabbaababaaaaa
|
|
||||||
bbbaabbaaaababbaabbbbabaaabaaaab
|
|
||||||
abbbabbbbbbabbaaabbaabbbababbbbaaabababb
|
|
||||||
bbbbbaaabaaabaabaabbaaab
|
|
||||||
bbaabbababaaababaaabbbabaaaababaabbaaababaabaaab
|
|
||||||
abbbabbbaabbbbbabbababbb
|
|
||||||
bbbaabbabbabbbabbaaaabba
|
|
||||||
bbabaabaababbbaababababaaabaabababaaaaaabaaababb
|
|
||||||
babaabaaaaaaabaaaabaabba
|
|
||||||
babbbbbaaabbbaaaaabbababbaababba
|
|
||||||
aababbaaababbbbbbabbabba
|
|
||||||
bbabbbabaabbaabbbbbbabaa
|
|
||||||
ababbababbbababaababbbaa
|
|
||||||
aaabbbaabbabaabaababbbba
|
|
||||||
bbaabbabbbabbaaabaabbbababaaabaabbbbbabbbbaaabaaababaaba
|
|
||||||
baababaabbaaabbabaaababb
|
|
||||||
abbaabbbababababaaababbbbaabaabb
|
|
||||||
baabbbbbaaabaababaababba
|
|
||||||
babaabaababaabbbbaabaabaaaababaababbabba
|
|
||||||
bbaaaaabaababbaaaabbaabaaabbabbbbababbaa
|
|
||||||
abbaaabbaaabbbbaaabbbbaaabbaaaabaabbaaabbaababbbabbabbabaaaababb
|
|
||||||
aaabbaabababaaaabaabaaab
|
|
||||||
bbaabbaabbbabaaabbabbbbbbbbabaabbabaaabababbbbabbaabbabbbbbabbaa
|
|
||||||
bbbabbbbbbabbbaabaababab
|
|
||||||
bbabbbbabbaabbbababbabba
|
|
||||||
aaabbbaabaabaababaabbabababbaaaabbbbbbba
|
|
||||||
babbaabababbabababbbbbbaababaabbbaabbbbababaaaabbbaaaaababbabaaabbbbaaaaabaaababbbbaabba
|
|
||||||
babbbabbbaaaaaaabbaabbbbabbbbabbaaabababaabbbbab
|
|
||||||
bbaaaaababaaabbaabbbaaaaaababbabbbaabaabaaabaaabbabaabab
|
|
||||||
baabbbbbabbaaababbbbaaabbbbbbaabbbbbbaabbaaaaababbaaaaaaaabbabba
|
|
||||||
bbabbbaaabaaabbbabbbabaaaababbaaaabbbaabababbbbabbababaaaaaababb
|
|
||||||
baaabaaaaabbababbbabbbbaabaabbbaaabbbaabbaaabbabbaaabaab
|
|
||||||
aaaaaabaaaaabbbabbbaabaa
|
|
||||||
bbaaabbbbabaaaabbabaaaabaabaaaaababaababaaaabaaaaababbbb
|
|
||||||
babbaaababbbaabaabbbbaab
|
|
||||||
aaabbaababbbbbabaaabbaaaaabbbbbaabaabaababababababbabbbb
|
|
||||||
babababbbaabaaaabaaabbbb
|
|
||||||
babbabaaaaabbbabbbbbbbaabbbaaaaa
|
|
||||||
aabbabaabaaabbbaaaaaabab
|
|
||||||
bbbabbaaabbbbabbbababbabaaabababaababaab
|
|
||||||
bbabaaaabaabbabbbbbabaabaaababbb
|
|
||||||
baababbbbaaaabbabbaabbbbbbbbbaaabbbbaaba
|
|
||||||
aabbaababaaaabaabaabbaba
|
|
||||||
bbbabbaababaabaaabbbaaaaabaaaabaaabaaababababaaabbababbbbbbbabba
|
|
||||||
bbabaabaabaaabaabbabbaab
|
|
||||||
aabaaaaaaaababbbaaababbbbbbaabab
|
|
||||||
baaaabaaabbbabbbabaaababbaabbaaa
|
|
||||||
baabbbbabababbbaaababbbabbabbbbabbaabbbaabbabababaaabababaabaabbbabbabba
|
|
||||||
baabaabaabababaabaaaabbb
|
|
||||||
abbaabbbbabaabaaababbababaabbabbbabbbbabbbbbaabababbaabb
|
|
||||||
abbbabbbbbbababaabbbabbabbbbbaab
|
|
||||||
abaaabbbbbbaabbbaabbaaab
|
|
||||||
ababbbabbbabbbaaabaaabaababababa
|
|
||||||
bbbbbbaaabbbaaaaaaabbabaabbbbaabbbbaaaab
|
|
||||||
bababbbbbabbbbbbbaabbbbbbbababbbbabbabbbabbbbaabbaaaabba
|
|
||||||
baaabbaaaaaaaababaaabbbaabaabaaabaabababaaabbaaaabbaabaa
|
|
||||||
aabbaabbbbbabaababaabaaaababbaaabbabbababbbbaabb
|
|
||||||
abbbbbaabbbabbbbbbbbaaba
|
|
||||||
aaabbabbbbbabbbababaaabb
|
|
||||||
abaabaaaaabbaaaababbbaab
|
|
||||||
aaaabaabbbbbaabababaaaaaaaaaaabb
|
|
||||||
bbbababaabbbabaabaababba
|
|
||||||
abbbaabbabaaababbbbbbabb
|
|
||||||
babbabbbaaaaabbbaababbabbaabbbbbbaaabbaaaabbbbbaabaababbbbaaaaba
|
|
||||||
aaaaaababbbababababaabab
|
|
||||||
bbaabaabbbaaaabbabbababaaaaaababaabaaabb
|
|
||||||
aabbabaababaaaababbbabab
|
|
||||||
ababbbababaabbbbbaaaabbbbbbbbaababbbbaaabbabbbaaabbbabbbbaaaabbbaaaaaaaaababaaab
|
|
||||||
bbbabaabaaaaabbaaaabaabb
|
|
||||||
babbaaabbaabaababbbbaaba
|
|
||||||
bbabaabababbbbbaabaabaaabbaaabbabbbabaaa
|
|
||||||
abbabaabbaaaabaabbbaaaba
|
|
||||||
aabbabaabaaabbbaaaabbbabbabababbbbbaabbb
|
|
||||||
aabbbbbbabababababbbbbab
|
|
||||||
abbabbbabbabaababaaabbbb
|
|
||||||
baaabbaaababbaaabaabaabb
|
|
||||||
bbbabbbaaaabaaaaabaaababaaaabbbbaabbaaaaabbbabab
|
|
||||||
aabbbabaaaababaabaaaaaba
|
|
||||||
abbbabbbababbabbbbaabbaa
|
|
||||||
abbbbbabaabababbbabababa
|
|
||||||
bbaabaabaababbaabababaaa
|
|
||||||
bbabaaabaababbbaaababbbaaaababba
|
|
||||||
abbaabaababbababaaaabbbaabbabaababbbaabaaaabaaabaabbbbab
|
|
||||||
babbbaaabbabbbaababbbbaaaabaababaaaabaaa
|
|
||||||
babababbabaaaabaaabbbabaaabbbabababaaaabbbabbaab
|
|
||||||
aabbbaababbaaabaababbaababaaabbbaaaaaabaababbaaaaabaaabbbbababaa
|
|
||||||
abbbabbbaaabbbbaaabaabab
|
|
||||||
abaabbaaaabbaabbbbbaaaaa
|
|
||||||
bbabaaabaaaabbbbaabbbaaaaabbbbbbabbbbbbabbbabaaa
|
|
||||||
bbbabbaababbbbbabbaaaaabbabaabaaababaababaaaaabb
|
|
||||||
abbbabbbababbaaabbabaaaaabbabbbabbabaabbbaaaaabbabbabaaabbbbbbbb
|
|
||||||
bababbbaaaabaabaabbababb
|
|
||||||
abbbbbbbabababaaabbaababbabaaababbaaaaaa
|
|
||||||
abbaabbbabaaaaabaaaaabbaabaaaaabababbbababbbabab
|
|
||||||
abbabbbbbbabaaaabbbabbbabbbbaaba
|
|
||||||
abbaabbbbaabaababaababba
|
|
||||||
bbabaaababaabbbaaaaaabbb
|
|
||||||
baabbabaaaaabbabaabbbbabbabbabbabbaaaaaa
|
|
||||||
babbbbbbababbababbabbbabaabbaaab
|
|
||||||
aaabaaabbbbabbbbaabbabbbbaaaaaabaabbbaabbaababaa
|
|
||||||
baabbbbbaaabaababababbab
|
|
||||||
babbaaabaaaabaababbabbaaaabaabaa
|
|
||||||
abaabbbbbbabaaaaaabaabab
|
|
||||||
aaaaabbaabababaabbbbbababbbababbbbaababb
|
|
||||||
abababababaabaaabbaaababbabbabbb
|
|
||||||
abaaaaabbbbbbabaaaaabbaa
|
|
||||||
aaaabbbbbbbbababbbabaabb
|
|
||||||
bbabbabaabaaabaaaaababab
|
|
||||||
aaabbbbbabbabbbbbabaababbbaabaababbababb
|
|
||||||
bbabaabaabbabbaaaabaabba
|
|
||||||
abbabaaababbaabaaaaabbbabbaaaaabbbaabbabbababaaabaabbaabbbbaaabaaaabbbaabbbbabba
|
|
||||||
ababbbabaaabbabbaaabbabaaabaabba
|
|
||||||
bbbabbbbbabbbbbbabaaabaaaaababbbbababaaa
|
|
||||||
babbabaaabbaaabbabbabaaa
|
|
||||||
babbbbaaabbbbbaaabaaabaabbbbababbaaababb
|
|
||||||
abbabbbbabababbbbbabbaaabaaababb
|
|
||||||
babbababbbaababaabbabbab
|
|
||||||
bbaaababbbbbaaababbbbabb
|
|
||||||
baaaabaababaabbbabaabbbaaabbbaabaaaabbab
|
|
||||||
abbaabbbbbaaaaabbbaabbabbaabbaab
|
|
||||||
aaaaaababbaababaaabaaabababbbabb
|
|
||||||
baaabbaabbbababaaababbbaaaaaabba
|
|
||||||
bbbbabaaaaabaaaaaaababbaaaababbbbbaabaaaaabaaaabaaaabbaabbbbbbbb
|
|
||||||
abaaabbbbaaabaaababbabba
|
|
||||||
aaaaabaaaaabbbaabbabaaaaabababaaabbbbbaabbaaaaba
|
|
||||||
ababbabababbbaaaaaaaabbb
|
|
||||||
aaababaaabaabbaababbabbb
|
|
||||||
ababababaabbbabbbaaabaab
|
|
||||||
baabbbabbaaabaaabaaabbbabbabbabb
|
|
||||||
bbbabbaabbabbababaabbbbaabaabbabaabaaabbbaaabbbb
|
|
||||||
aaabbbabaaabbbbbabbabbbbbbbaaaaa
|
|
||||||
aaabbababbaaababaaaabbaa
|
|
||||||
bbbabbaaababbbabaaabaabb
|
|
||||||
baababbabbbabaaababaaababababbaaaababaabbbbaaaabbabaaababbbabaababbabbbbbaaabbab
|
|
||||||
bbbabbaababaabbabbbbbaaa
|
|
||||||
abababaabaaaabaaabababbbbaababbbbbabbaaaaaabbaabbbbabababbabaabb
|
|
||||||
babbbababaaabbbabaababbbaaabababaaaababbbabbaabbabaabbba
|
|
||||||
bbbabbaabaabbbbaaaaaabaabaaabbab
|
|
||||||
bbbabbbbaabbaabaaaaabbbbbaabbabbabbaabaababbaabbaaabbaaa
|
|
||||||
aaababbbbaaaabaaabbabbbbabbbbaba
|
|
||||||
aaaaabbababaabbabaaaaaaaaaaaaababbbbbbaaababbaaaaabaabab
|
|
||||||
babbababbaaabbabbabbaaaabbaabaabbaaabbab
|
|
|
@ -1,40 +0,0 @@
|
||||||
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, DataKinds #-}
|
|
||||||
|
|
||||||
module Day17 where
|
|
||||||
|
|
||||||
import AoC
|
|
||||||
|
|
||||||
import Data.List
|
|
||||||
import Data.Vector.Sized (Vector)
|
|
||||||
import qualified Data.Vector.Sized as V
|
|
||||||
import Data.Map (Map)
|
|
||||||
import qualified Data.Map as M
|
|
||||||
import Data.Set (Set)
|
|
||||||
import qualified Data.Set as S
|
|
||||||
|
|
||||||
class Index i where
|
|
||||||
neighbours :: i -> [i]
|
|
||||||
addIndex :: i -> i -> i
|
|
||||||
|
|
||||||
instance (Num a, Eq a) => Index (Vector n a) where
|
|
||||||
neighbours i = filter (/= i) . V.mapM (flip map [-1, 0, 1] . (+)) $ i
|
|
||||||
addIndex = V.zipWith (+)
|
|
||||||
|
|
||||||
counts :: Ord a => [a] -> Map a Int
|
|
||||||
counts = M.fromList . map (\xs -> (head xs, length xs)) . group . sort
|
|
||||||
|
|
||||||
neighbourCounts :: (Index i, Ord i) => Set i -> Map i Int
|
|
||||||
neighbourCounts = counts . concatMap neighbours . S.elems
|
|
||||||
|
|
||||||
update :: (Index i, Ord i) => (Int -> Bool) -> (Int -> Bool) -> Set i -> Set i
|
|
||||||
update create destroy old = M.keysSet $ M.filterWithKey shouldLive $ M.fromSet (flip (M.findWithDefault 0) nCounts) indices
|
|
||||||
where nCounts = neighbourCounts old
|
|
||||||
indices = S.union old $ M.keysSet nCounts
|
|
||||||
shouldLive ix n = if S.notMember ix old then create n else not $ destroy n
|
|
||||||
|
|
||||||
run6 :: (Index i, Ord i) => Set i -> Int
|
|
||||||
run6 = S.size . (!! 6) . iterate (update (==3) (`notElem` [2, 3]))
|
|
||||||
|
|
||||||
main = runAoC (toIndices . lines) (run6 . S.fromList . map extendIndex) (run6 . S.fromList . map (extendIndex . extendIndex))
|
|
||||||
where toIndices input = [V.fromTuple (row, col) :: Vector 2 Int | (row, line) <- zip [0..] input, (col, '#') <- zip [0..] line]
|
|
||||||
extendIndex = V.cons 0
|
|
|
@ -1,45 +0,0 @@
|
||||||
module Day19 where
|
|
||||||
|
|
||||||
import AoC
|
|
||||||
|
|
||||||
import Control.Applicative
|
|
||||||
import Data.Char
|
|
||||||
import Data.Foldable
|
|
||||||
import Data.Map (Map, (!))
|
|
||||||
import qualified Data.Map as M
|
|
||||||
import Data.Maybe
|
|
||||||
import Data.Tuple
|
|
||||||
import Text.ParserCombinators.ReadP
|
|
||||||
import Text.Read.Lex
|
|
||||||
|
|
||||||
data RuleElement = Literal String | Reference Int
|
|
||||||
|
|
||||||
parseElement :: ReadP RuleElement
|
|
||||||
parseElement = parseRef <|> parseLit
|
|
||||||
where parseRef = Reference <$> readDecP
|
|
||||||
parseLit = Literal <$> between (char '"') (char '"') (many1 $ satisfy isAlphaNum)
|
|
||||||
|
|
||||||
parseRule :: ReadP (Int, [[RuleElement]])
|
|
||||||
parseRule = do ruleNum <- readDecP
|
|
||||||
string ": "
|
|
||||||
alternatives <- parseAlternatives
|
|
||||||
return (ruleNum, alternatives)
|
|
||||||
where parseAlternatives = parseSequence `sepBy` string " | "
|
|
||||||
parseSequence = parseElement `sepBy` char ' '
|
|
||||||
|
|
||||||
buildParser :: Map Int [[RuleElement]] -> Int -> ReadP String
|
|
||||||
buildParser m i = buildAlternatives $ m ! i
|
|
||||||
where buildAlternatives = asum . map buildSequence
|
|
||||||
buildSequence = foldl1 (liftA2 (++)) . map buildElement
|
|
||||||
buildElement (Literal s) = string s
|
|
||||||
buildElement (Reference j) = buildParser m j
|
|
||||||
|
|
||||||
countRootMatches :: [String] -> Map Int [[RuleElement]] -> Int
|
|
||||||
countRootMatches input rules = length . filter (isJust . oneCompleteResult rootParser) $ input
|
|
||||||
where rootParser = buildParser rules 0
|
|
||||||
|
|
||||||
main = runAoC splitInput run (run . withExtraRules)
|
|
||||||
where splitInput = swap . fmap tail . break (=="") . lines
|
|
||||||
withExtraRules = fmap (++ ["8: 42 | 42 8", "11: 42 31 | 42 11 31"])
|
|
||||||
run = uncurry countRootMatches . fmap parseRules
|
|
||||||
parseRules = M.fromList . map (fromJust . oneCompleteResult parseRule)
|
|
Loading…
Reference in a new issue