Repository navigation
Expand file tree
/
Copy pathday13.js
More file actions
253 lines (241 loc) · 24.5 KB
/
Copy pathday13.js
File metadata and controls
253 lines (241 loc) · 24.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
require('./newStdLib');
const advent = require('./advent');
function move(grid, a) {
switch(grid[a.y][a.x]) {
case '/': { a.dir = {'^': '>', 'v': '<', '>': '^', '<': 'v'}[a.dir]; break;}
case '\\': { a.dir = {'^': '<', 'v': '>', '>': 'v', '<': '^'}[a.dir]; break;}
case '+': {
a.dir = [
{'^': '<', 'v': '>', '>': '^', '<': 'v'},
{'^': '^', 'v': 'v', '>': '>', '<': '<'},
{'^': '>', 'v': '<', '>': 'v', '<': '^'},
][a.turn++ %3][a.dir]
break;
}
}
switch(a.dir) {
case '^': {a.y--; break;}
case '>': {a.x++; break;}
case 'v': {a.y++; break;}
case '<': {a.x--; break;}
}
}
function readGrid(input) {
var carts = [],
grid = input.split("\n").map((a,i) => a.split("").map((a,j) => {
if ('^>v<'.indexOf(a) != -1) {
carts.push({x: j, y: i, dir: a, turn: 0});
return {'^': '|', 'v': '|', '>': '-', '<': '-'}[a]
}
return a;
}))
return {carts, grid};
}
function part1(input) {
var {carts, grid} = readGrid(input);
while(true) {
carts.sort((a,b) => {return (a.y - b.y) || (a.x-b.x)})
var currPos = [];
for (var c = 0; c < carts.length; c++) {
move(grid, carts[c])
for(var i = 0; i < carts.length; i++) {
for(var j = 0; j < carts.length; j++) {
if (i == j) continue;
if (carts[i].x == carts[j].x && carts[j].y == carts[i].y) {
return `${carts[i].x},${carts[i].y}`
}
}
}
}
}
}
function part2(input) {
var {carts, grid} = readGrid(input);
while(carts.length > 1) {
carts.sort((a,b) => {return (a.y - b.y) || (a.x-b.x)})
var currPos = [];
for (var c = 0; c < carts.length; c++) {
move(grid, carts[c])
for(var i = 0; i < carts.length; i++) {
for(var j = 0; j < carts.length; j++) {
if (i == j) continue;
if (carts[i].x == carts[j].x && carts[j].y == carts[i].y) {
var sub = 0
if(c>=i)sub++;
if(c>=j)sub++;
c-=sub
carts.splice(i, 1)
carts.splice(i, 1)
}
}
}
}
}
return `${carts[0].x},${carts[0].y}`;
}
advent.test(part1, `/->-\\
| | /----\\
| /-+--+-\\ |
| | | | v |
\\-+-/ \\-+--/
\\------/`, '7,3')
input = ` /------------------------------------------------------------------------------------------------------\\
| /------------------------------\\ /----+---\\
| /----------------+-------------\\ | | /--+---+----\\
/-----------------------------\\ | /-------+------------\\ | /--------+----------------+---------------+-+--+---+----+-\\
| | | | | | | /-+--------+----------------+----\\ | | | | | |
| /---------------------------+--+-------------------------+-------+------------+---+--+-+--------+----------\\ | | | | | | | |
| | /--------------------\\ | | /---+------\\| | | | | | | | | | | | | | |
| | | | | | /------------------+---+------++------------+---+--+-+--------+----------+-----+----+-------\\ | | | | | |
| | | | | | | | | || | | | | | | | | | | | | | | |
| | | /------------------+---+--+--+------------------+---+------++-\\ | | | | | | | | | | | | | | |
| | | | /----+---+--+--+------------------+---+------++-+----------+---+--+-+--------+----------+-----+-\\ | | | | | | | |
| | | | | | | | | | | |\\-+----------+---+--+-+--------/ | | | | | | | | | | |
| | | | | /--+---+--+--+---------------\\ | | | | /+---+--+-+-------------------+-----+-+--+-------+--+-+--+---+---\\| |
| | | | | | | | | | | | | | | || | | | /---+-----+-+--+-------+\\ | | | | || |
| | | | | |/-+---+--+--+---------------+--+---+------+--+---------++---+--+-+-------------\\ | | | | | || | | | | || |
| | | | | || | | | | | | | | | || | | | | | | | | | || | | | | || |
|/+--+-+-------------+-++-+---+--+--+---\\ /--------+--+---+------+--+---------++---+--+-+-------------+-+---+-----+-+-\\| || | | | | || |
||| | | /-----------+-++-+---+--+--+---+--+--------+--+---+------+--+---------++---+-\\| | /------+-+---+\\ | | || || | | | | || |
||| | | | /-----+-++-+---+--+--+---+--+-\\ /--+--+---+------+--+------\\ || | || | | | | || | | || || | | | | || |
||| | | | | | || | | | | | |/+---+--+--+---+------+--+------+--++---+-++-+------+------+-+---++----+-+-++-------++\\| | | | || |
||| | | | | | || | | |/-+---+--+++-\\ | | | | | | | || | || \\------+------+-+---++----+-+-++-------++++-+--+---+---++-/
||| | | | | | || | | || | | ||| | | | | | /-+--+------+--++\\ | || | | | || /+-+-++--\\ |||| | | | ||
||| | | | | /--+-++-+---+-\\|| | | ||| | | | | | | | | | ||| | |^ /---+------+-+---++---++-+-++--+----++++-+--+--\\| ||
||| | | | /--+--+--+-++-+---+-+++-+---+--+++-+-+--+--+---+----+-+--+------+--+++--+-++----+---+------+-+--\\|| || | || | |||| | | || ||
||| | | | | | | | || | | ||| | | ||| | | | | | | | | | ||| | || | | | | ||| || | || | |||| | | || ||
||| | | | /+--+--+--+-++-+---+-+++-+---+--+++-+-+--+--+---+----+-+--+------+--+++--+-++----+---+------+-+--+++\\ || | || | |||| | | || ||
/+++--+-+-+-++--+--+--+-++-+---+-+++-+---+--+++-+-+--+--+-\\ | | | | | ||| | || | | | | |||| || | || | |||| | | || ||
|||| | | | || | | | || | | ||| | | ||| | | | | | | | | | /+--+++--+-++----+---+------+-+--++++--++-+-++--+----++++-+--+--++---++\\
|||| | | | || | /+--+-++-+---+-+++\\\\---+--+++-+-+--+--+-+-+----+-+--+-----++--+++--+-++----+---+------+-+--++++--++-+-++--+----/||| | | || |||
|||| | | | || | || | || | | |||| | ||| | | | | | | | | |/----++--+++--+-++---\\| \\------+-+--++/| || |/++--+-----+++>+--+-\\|| |||
|||| /+-+-+-++--+-++--+-++-+---+-++++\\ | ||| | | | /+-+-+----+-+--++----++--+++--+-++---++-----\\ | | /++-+--++-++++--+-----+++-+->+-+++\\ |||
|||| || | | || | || | || | | ||||| | ||| | | | || | | | | || || ||| | || || | | | ||| | || |||| | /--+++-+--+-++++--+++-\\
|||\\-++-+-+-++--+-++--+-++-+---+-+++++---+--+++-+-+--+-++-+-+----+-+--++----++--+++--+-++---++-----+----+-+-++/ | || |||| | | ||| | | |||| ||| |
||| || | | || | || | || | | |||||/--+--+++-+-+--+-++-+-+----+-+--++----++--+++--+-++---++--<--+----+-+-++--+--++-++++--+--+--+++-+-\\| |||| ||| |
||| || | | || /+-++--+-++-+---+-++++++--+--+++-+-+--+-++-+-+----+-+--++----++--+++--+-++---++-----+----+-+-++--+--++\\|||| | | ||| | || |||| ||| |
||| || | | || || || | || | |/++++++--+--+++-+-+--+-++-+-+----+-+--++----++--+++--+-++---++-----+----+\\| || | ||||||| | | ||| | || |||| ||| |
||| |\\-+-+-++-++-++--+-++-/ |||||||| | ||| | | | |\\-+-+----+-/ || || ||| | || || | ||| || | ||||||| | | ||| \\-++-++++--+/| |
||| | | | || ||/++--+-++-----++++++++--+--+++-+-+--+-+--+-+----+----++----++--+++--+-++---++-\\ | ||| || | ||||||| | | ||| || |||| | | |
||| | | | || ||||| | || /-++++++++--+--+++-+-+--+-+--+-+--\\ \\----++----++--++/ | || || | | ||\\-++--+--+++++++--+--+--/|| || |||| | | |
|||/-+--+-+-++-+++++--+-++---+-++++++++--+--+++-+-+--+-+-\\| | | || || || | |\\---++-+---+----++--++--+--++++++/ | | || || |||| | | |
|||| | | | || ||||| | || | |||||||| /+--+++-+-+--+-+-++-+--+------++----++--++---+-+----++-+---+----++--++\\ | |||||| | | || || |||| | | |
||||/+--+-+-++-+++++--+-++---+-++++++++-++--+++-+-+--+-+-++-+--+------++----++<-++---+-+----++-+\\ | || ||| | |||||| | | || || |||| | | |
|||||| | | || ||||| | || | |||||||| || \\++-+-+--+-+-++-+--+------++----++--++---+-+----++-++--+----++--+++-+--+++++/ | | || || |||| | | |
|||||| |/+-++-+++++--+-++---+-++++++++-++---++-+-+--+-+-++-+--+------++----++--++-\\ | | || || | || ||| | ||||| | | || || |||| | | |
|||||| ||| || ||||| | || | |||||||| || || | \\--+-+-++-+--+------++----+/ || | | | || || | || ||| | ||||| | | || || |||| | | |
|||||| ||| || ||||| | || /-+-++++++++-++---++-+----+-+\\|| \\--+------++----+---+/ | | | || || | || ||| | ||||\\----+--+---++---++-/||| | | |
|||||| ||| || ||||\\--+-++-+-+-++/||||| || || | | |||| | /----++----+--\\| | | |/---++-++--+->--++--+++-+--++++-----+\\ | || || ||| | | |
|||||| ||| || |||| | || | | || ||||| || || | | |||| | | || | || | | || || || | || ||| | |||| /-++-+---++---++--+++--+\\| |
|||||| ||| || |||| | || | | || ||||| || || | | |||| | | || | || | | || || || | /-++--+++-+--++++---+-++-+---++---++--+++--+++\\|
|||||| ||| || |||| | || | | || ||||| || || | | |||| | | || | || | | || || || | | || \\++-+--++++---+-++-+---++---++--++/ |||||
|||||| ||| || |||| | || | | || ||||| || || | | |||| | | || | || | | || |\\-++--+--+-++---++-+--++++---+-++>+---++---++--/| |||||
|||||| ||| || |||| | \\+-+-+-++-+++++-++---++-+----/ |||| | | || | || | | || | || | | || || | |||| | || | || || | |||||
||||\\+--+++-++-++++---+--+-+-+-++-+++++-++---++-+------++++----+-+----++----+--++--+-+-++---+--+/ | | || || | |||| | || | || || | |||||
|||| | ||| || |||| | | | | || ||||| || || | /----++++----+-+----++----+--++--+-+-++---+--+---+--+-++---++-+--++++---+-++-+---++\\ || | |||||
|||| | ||| || |||| | | | | || ||||| || || | | |||| | | || /+--++--+-+-++---+--+---+--+-++---++-+-\\|||| /-+-++-+---+++--++--\\| |||||
|||| | ||| || |||| | | | | || ||||| || ||/+-+----++++----+-+--\\ || || || | | || | /+---+--+-++---++-+-+++++-+-+-++-+---+++--++--++-\\ |||||
|||^ | ||| || |||| | | | | || ||||| ||/--++++-+----++++----+-+--+-++---++--++--+-+-++---+-++---+--+-++---++-+-+++++-+-+-++-+---+++--++--++\\| |||||
|||\\-+--+++-++-++++---+--+-+-+-++-+++++-+++--++++-+----++/| | | | || || || | | || | || | | || || | ||||| | | || | ||| || |||| |||||
||| | ||| || |||| | |/+-+-++-+++++-+++--++++-+----++-+\\ | | | || || || | | || | || | | || || | ||||| | | || | ||| || |||| |||||
||| | ^|| || |||| | ||| | || ||||| ||| |||| | || || | | | || |\\--++--+-+-++---+-++---+--+-++---++-+-+++++-+-+-++-+---+++--++--++++-++/||
||| | ||| || |||| | ||| | || ||||| ||| |||| | /-++-++---+-+--+\\|| | || | | || | || | | || || | ||||| | | || | ||| || |||| || ||
||| | ||| || |||| | ||| | || ||||| ||| |||| | | || || | | |||| | || | | || | || | | || || | ||||| | | || | ||| || |||| || ||
||| | ||| || |||| | ||| | || \\++++-+++--++++-+--+-++-++---+-+--++++---+---++--+-+-++---+-++---+--+-++---++-+-+++++-+-+-++-+---+++--+/ |||| || ||
||| | ||| || |||| | ||| | || |||| ||| |||| | | || ||/--+-+--++++---+---++--+-+-++---+-++---+--+-++---++-+-+++++-+-+-++-+\\ ||| | |||| || ||
||| | ||| || |||| | ||\\-+-++--++++-+++--++++-+--+-+/ ||| | | |||| | || | | || | || | | || || | ||||| | \\-++-++--+++--+---++++-+/ ||
||| | ||| || |||| | || | || |||| ||| |||| | | | ||| | | |||| | || | | || | || | | || || | ||||| | || || ||| | |||| | ||
||| | ||| || |||| | /++--+-++--++++-+++--++++-+--+-+--+++--+-+--++++---+\\ || | | || | || | | || || | ||||| | || || ||| | |||| | ||
||| | ||| || |||| | ||| | || |||| ||| |||| | | | ||| | | |||| || || | | || | || | | || || | ||||| | || || ||| | |||| | ||
||| | ||| || |||| | ||| | || |||| ||| |||| | | | ||| | | |||| || || | |/++---+-++---+--+-++---++-+-+++++-+---++-++--+++--+\\ |||| | ||
||| | ||| || |||| | ||| | || |||| |||/-++++-+--+-+--+++--+-+--++++---++--++--+-++++---+-++---+--+-++---++-+-+++++-+---++-++--+++--++\\ |||| | ||
||| | ||| || |||| | |||/-+-++--++++-++++-++++-+--+-+--+++--+-+--++++\\ || || | |||| | || | | || || | ||||| | || || ||| ||| |||| | ||
||| | ||| || |\\++---+-++++-+-++--++++-++++-+/|| | | | ||| | | ||||| || || | |||| | || | | || || | ||||| | || || ||| ||| |||| | ||
||| | \\++-++-+-++---+-++++-+-++--++++-++++-+-++-+--+-+--+++--+-+--++/|| || || | |||| | || | | || || | ||||| | || || ||| ||| |||| | ||
||| | || || | || | |||| | || |||| |||| | || | | | ||| | | || || || || | |||| | || | | || || | ||||| \\---++-++--+++--+++-/||| | ||
||| | || || | || | ||||/+-++--++++-++++-+-++-+--+-+--+++--+-+--++-++--++--++--+-++++-\\ | || | | || || | ||||| || || ||| ||| ||| | ||
||| | || || | || | |||||| || |||| |||| | ||/+--+-+--+++--+-+--++-++--++--++--+-++++-+-+-++---+--+-++---++-+-+++++-----++-++\\ ||| ||| ||| | ||
||| | || || | || | |||||| || |||| |||| | |||| |/+--+++--+-+--++-++--++-\\|| |/++++-+-+-++---+--+-++-\\ || | ||||| || ||| ||| ||| ||| | ||
||| | |\\-++-+-++---+-++++++-++--++++-++++-+-++++--+++--+++--+-+--++-++--++-+++--++++/| | | || | | || | || | ||||| || ||| ||| ||| ||| | ||
||| | | || | \\+---+-++++++-++--++++-++++-+-++++--+++--+++--+-+--++-++--++-+++--++++-+-+-+-+/ | | || | || | ||||| || ||| ||| ||| ||| | ||
||| | | /++-+--+---+-++++++-++--++++-++++-+-++++--+++-\\||| | | || || || ||| |||| | | | | | | || | || | ||||| || ||| ||| ||| ||| | ||
||| | | ||| | | /+-++++++-++--++++-++++-+-++++\\ ||| |||| | | || || || ||| |||| | | | | | | || | || | ||||| || ||| v|| ||| ||| | ||
||| | | ||| | | || |||||| || |||| |||| | ||||| ||| |||| | | || || || ||| |||| | | | | /+--+-++-+\\|| | ||||| || ||| ||| ||| ||| | ||
||| | | ||| | | || |||||| || |||^ |||| | ||||| ||| |||| | | || || \\+-+++--++++-+-+-+-+---++--+-++-++++-+-/|||| || ||| ||| ||| ||| | ||
||| | | |\\+-+--+--++-++++++-++--++++-++++-+-+++++-+++-++++--+-+--++-++---+-+++--++++-+-+-+-+>--++--+-++-++++-/ |||| || ||| ||| ||| ||| | ||
||| | | | | | /+--++-++++++-++--++++-++++-+-+++++-+++-++++--+-+--++-++---+-+++\\ |||| | | | | || | || |||| ||||/----++-+++-+++--+++-\\||| | ||
||| | | | | | |\\--++-++++++-++--+/|| |||| | ||||| ||| |||| | |/-++-++---+-++++-++++-+-+-+-+---++--+-++-++++----+++++----++-+++-+++--+++\\|||| | ||
||| | | | | | | || |||||| || | || |||| | ||||| ||| |||| | || || || | |||| ||||/+-+-+-+---++--+-++-++++----+++++----++\\||| ||| |||||||| | ||
||| | | | | | | || |||||| || | || |||| | ||\\++-+++-++++--+-++-++-++---+-++++-++++++-+-+-+---++--+-++-++++----+++++----+++++/ ||| |||||||| | ||
||| | v | | | | /++-++++++-++--+-++-++++-+-++-++-+++-++++--+-++-++-++\\ | |||| ||\\+++-+-+-+---++--+-++-++++----+/||| ||||| ||| |||||||| | ||
||| | | | | | | ||| |||||| || /+-++-++++-+-++-++-+++-++++--+-++-++-+++--+-++++-++-+++-+-+-+---++--+-++-++++\\ | ||| ||||| ||| |||||||| | ||
||| | | | | | | ||| |||||| || ||/++-++++-+-++-++-+++-++++--+-++-++-+++--+-++++-++-+++-+\\| | || | || ||||| | ||| ||||| ||| |||||||| | ||
||| | | | | | | ||| |||||| || ||||| |||| | || || |\\+-++++--+-++-++-+++--+-/||| || ||| ||| | || | || ||||| | ||| ||||| ||| |||||||| | ||
||| | | | | | | ||| |||||| || ||||| |||| | || || | | |||\\--+-++-++-+++--+--+++-++-+++-+++-+---++--+-++-+++++---+-+++----++++/ ||| |||||||| | ||
||| | | | | | | ||| |||||| || ||||| |||| | || || | | ||| | || || ||| | ||| || ||| ||| | || | || ||||| | ||| |||| ||| |||||||| | ||
||| | | | | | | ||| |||||| || ||||| |||| | || || | | ||| | |\\-++-+++--+--+++-++-+++-+++-+---++--+-++-+++++---+-+++----++++---+++--+++/|||| | ||
||| | | | | | | ||| |||\\++-++-+++++-++++-+-++-++-+-+-+++---+-+--++-+/| | ||| || ||| ||| | || | || ||||| \\-+++----/||| ||| ||| |||| | ||
||| | | | | \\-+--+++-+++-++-++-+++++-++++-+-++-++-+-+-+++---+-+--++-+-+--+--+++-++-+++-+++-+---++--+-++-+++++-----/|| ||| ||| ||| |||| | ||
||| | | | | | ||| ||| || || ||||| |||| v || || | | ||| | | || | | | ||| || |||/+++-+---++--+-++-+++++------++--\\ ||| ||| ||| |||| | ||
||| | | | | | ||| ||| || || ||||| |||| | || || | | ||| | | || | | | ||| || \\++++++-+---++--+-++-+++++------++--+--+++---+++--+/| |||| | ||
||| | \\-+-+---+--+++-+++-++-++-+++++-++++-+-++-++-+-+-+++---+-+--++-+-+--+--+++-/| |||||| | || | || ||||| || | ||\\---+++--+-+-++++-+--+/
||| | | | | ||| ||| || || ||||| |||| | \\+-++-+-+-+++---+-+--/| | | | ||| | |||||| | || | || ||||| || | || ||| | | |||| | |
||| | | | | ||| ||| || || ||||| |||| | | || | | ||| | | | | | | ||| | |||||| |/--++--+-++-+++++------++--+\\ || |\\+--+-+-+/|| | |
||| | | | \\--+++-+++-++-++-+++++-++++-+--+-++-+-+-+++---+-+---+-+-+--+>-++/ | |||||| \\+--++--+-++-+++++------++--++-++----+-+--+-+-+-+/ | |
||| | | | ||| ||| || || ||||| |||| | | || | | ||| | | | | | | || | |||||| | || | || ||||| || || || | | | | | | | |
||| | | | ||| ||| |\\-++-+++++-++++-+-<+-++-+-+-+++---/ | | | | | || | |||||| | || | || ||||| || || || | | /+-+-+-+--+\\ |
||\\--+-----+-+------+++-+++-+--++-+++++-+/|| | | || | | ||| | | | | | || | |||||| | || | ||/+++++------++--++\\|| | | || | | | || |
|| | | | ||| ||| | || ||||| | || | | || | | ||| | /+-+-+--+--++---+--++++++-\\| || | |||||||| |\\--+++++----+-+-++-+-/ | || |
|| \\-----+-+------+++-+++-+--++-+++/| | || | | || | | ||| | || \\-+--+--++---+--+++++/ || || | |||||||| /-+---+++++----+-+-++-+---+--++-+\\
|\\---------+-+------+++-+++-+--/| |||/+-+-++-+--+-++-+-+-+++-----+--++---+--+--++---+\\ ||||| || || | |||||||| | | ||||| | | || | | || ||
| | | ||\\-+++-+---+-+++++-+-++-+--+-++-+-+-+++-----+--++---+--+--++---++-+++++--++--++--+-++++++++----+-/ ||||| | | || | | || ||
| | | || ||| | | ||||| \\-++-+--+-++-+-+-+++-----+--++---+--+--++---++-+++++--++--++--+-++++++/| | ||||| | | || | | || ||
\\----------+-+------++--+++-+---+-+++++---++-+--+-++-+-+-+/| | || | | || || ||||| || || | |||||| | | ||||| | | || | | || ||
| | || ||| | | ||||| || | | || | | | | | || | | |\\---++-+++++--++--++--+-++++++-+----+-----+++++----+-+-++-+---+--/| ||
/--+-+------++--+++-+\\ | |||||/--++-+--+-++-+-+-+-+-----+--++\\ | | | || ||\\++--++--++--+-++++++-+----+-----/|||| | | || | | | ||
/-------+--+-+------++--+++-++--+-++++++--++-+--+-++-+-+-+-+-----+--+++--+--+--+----++-++-++--++\\ || | |||||| | | |||| | | || | | | ||
| | | | || |\\+-++--+-++++++--++-+--+-++-+-+-+-+-----+--+++--+--+--+----++-++-++--+++-++--+-/||||| | | |||| | | || | | | ||
| | | | || | | || | |\\++++--++-+--/ || \\-+-+-+-----+--+/| | | | || || || ||| || | ||||| | | |||| | | || | | | ||
| | | | || | |/++--+-+-++++--++-+----++---+-+-+-----+--+-+--+--+--+----++-++-++-\\||| || | ||||| | | /--++++---\\| | || | | | ||
| | \\-+------++--+-++++--+-+-++++--++-+----++---+-/ | /+--+-+--+--+--+----++-++-++-++++-++--+--+++++-+----+--\\| |||| || | || | | | ||
| | | || | |||| | | |||| |\\-+----++---+---+----++--+-+--+--+--+----++-++-++-++++-++--+--+++++-+----+--++--++++---++-+-++-/ | | ||
| |/---+------++--+-++++--+-+-++++--+--+----++--\\| | || | | | | /+----++-++-++-++++-++--+--+++++-+----+--++--++++---++-+-++-----+---+\\||
| || /+------++--+-++++--+-+-++++--+--+----++--++---+----++--+-+--+--+-++----++-++-++-++++-++--+--+++++-+--\\ | || |||| || | || | ||||
| || || || | |||| | | |||| | | || || | || | | | | || || || || |||| || \\--+++++-+--+-+--++--++++---++-+-++-----+---++/|
| || || || | |||| | | |||| | | \\+--++---+----++--+-+--+--+-++----++-++-++>++++-++-----+++++-+--+-+--++--++++---++-/ || | || |
| || || || | |||| | | |||| | | | || | || | | | | || \\+-++-++-++++-++-----++/|| | | | || |||| || || | || |
| || || || | |||| | | |||| | \\-----+--++---+----++--+-+--+--+-++-----+-++-++-++++-++-----++-++-+--+-+--++--++++---+/ || | || |
| || |\\------++--+-++++--+-+-++++--+--------+--++---+----++--+-+--+--+-++-----+-++-++-++++-++-----++-+/ | | | || |||| | || | || |
| || | || | |||| \\-+-++++--+--------+--++---+----++--+-+--+--+-++-----+-++-++-++++-++-----/| | | | | || |||| | || | || |
| || | || | |||| | |||| | | |\\---+----++--+-+--+--+-++-----+-++-++-++++-+/ | | | | | || |||| | || | || |
| /---++--+\\ || | |||| | |||| | | | | || \\-+--+--+-++-----+-++-++-+/|| | | | | | | || |||| | || | || |
| | || || || | |||| | ||\\+--+--------+--+----+----++----+--+--+-++-----+-++-++-+-++-+-------+-+--+--+-+--++--++++---+----+/ | || |
| | || || || | |||| | || \\--+--------+--+----+----++----/ | | || | || || | || | | | | | | |\\--++++---/ | | || |
| | || || || | |||| | || | | | | \\+-------+--+-++-----+-++-++-+-++-+-------+-+--+--+-+--/ |||| | | || |
| | || || |\\--+-++++----+-++----+--------/ | | | | | || | || || | || | | | | | | |||| | | || |
| | || || | | |||| | || \\-----------+----+-----+-------+--+-++-----+-++-++-+-++-+-------+-+--+--+-+------++++--------+------/ || |
\\---+---++--++------+---+-++++----+-++----------------+----+-----+-------+--+-++-----+-++-++-+-+//+-------+-+--+\\ | | |||| | || |
| |\\--++------+---+-++++----+-++----------------/ | | | | || | || || | | || | | || | | |||| | || |
| | \\+------+---+-++++----+-++---------------------+-----+-------+--+-++-----+-++-++-+-+-++-------+-+--++-/ | |||| | || |
| | | | \\-++++----+-++---------------------+-----+-------+--/ \\+-----+-++-++-+-+-++-------+-+--++---+------++++--------+----------+/ |
| | | | |||| | || | | | | | \\+-++-+-+-++-------+-+--++---+------+++/ | | |
| | | | |||| | \\+---------------------+-----+-------+-----+-----+--+-+/ | | || | | || | ||| | | |
| | | | |||| | | | | | | | | | | | || | | || | ||| | | |
| | | | |||| \\--+---------------------+-----+-------+-----+-----+--+-+--+-+-++-------+-+--/| | ||| | | |
| | | | \\+++-------+---------------------/ | | | | | | | | || | | | \\------+++---------+----------+--/
\\---+----/ | \\++-------+---------------------------+-------+-----+-----+--+-+--/ | \\+-------+-+---/ ||| | |
| \\-------++-------+---------------------------+-------/ | | | | \\--+-------+-+--------------/|| | |
| || | \\-------------/ | | | | \\-+---------------/| | |
| \\+-------+-----------------------------------------------+--+-/ | | | \\----------/
\\--------------------/ \\-----------------------------------------------/ \\---------+---------+----------------/
\\---------/
`
advent.run(part1, input);
advent.test(part2, `/>-<\\
| |
| /<+-\\
| | | v
\\>+</ |
| ^
\\<->/`, '6,4')
advent.run(part2, input)