Repository navigation
Expand file tree
/
Copy pathday10.js
More file actions
32 lines (30 loc) · 8.64 KB
/
Copy pathday10.js
File metadata and controls
32 lines (30 loc) · 8.64 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
require('./newStdLib');
const advent = require('./advent');
const input = [
[-54217, -21587, 5, 2],[-54233, -10693, 5, 1],[-54217, -43356, 5, 4],[-32441, -43354, 3, 4],[-43345, -10690, 4, 1],[ 21983, 54631,-2, -5],[-21566, 32857, 2, -3],[ 43767, -54245,-4, 5],[-32473, 54631, 3, -5],[ 11071, -21580,-1, 2],[ 32903, -54247,-3, 5],[-43361, 54632, 4, -5],[ 32857, -32472,-3, 3],[ 32900, 21968,-3, -2],[-10688, -43354, 1, 4],[-43317, 11082, 4, -1],[ 11079, -32469,-1, 3],[ 11121, 21965,-1, -2],[-10669, -54246, 1, 5],[ 43759, 32860,-4, -3],[-32441, 54630, 3, -5],[ 21972, -21578,-2, 2],[ 32847, -43355,-3, 4],[ 11111, -21586,-1, 2],[-21585, 32859, 2, -3],[ 32871, 54637,-3, -5],[-10671, -10699, 1, 1],[-10676, -43363, 1, 4],[-43333, -43358, 4, 4],[ 21983, -54244,-2, 5],[-54217, 11081, 5, -1],[-43332, -21581, 4, 2],[-21581, -54250, 2, 5],[-43313, 21969, 4, -2],[ 54643, 21965,-5, -2],[-32452, 11077, 3, -1],[-43343, 43741, 4, -4],[ 32871, -54243,-3, 5],[-54204, 43750, 5, -4],[ 54631, 32861,-5, -3],[ 11103, 11079,-1, -1],[ 54643, -32474,-5, 3],[ 43767, 11084,-4, -1],[ 32850, 11081,-3, -1],[ 32855, 32861,-3, -3],[ 54663, -43357,-5, 4],[-54252, -10690, 5, 1],[ 11076, 21973,-1, -2],[-32447, -43363, 3, 4],[-21534, -32471, 2, 3],[-32461, -54245, 3, 5],[ 54681, 43745,-5, -4],[-10694, -10697, 1, 1],[ 32847, -32475,-3, 3],[ 43776, -21583,-4, 2],[-43313, -43359, 4, 4],[ 32865, -32466,-3, 3],[-54214, 11079, 5, -1],[-54239, -54242, 5, 5],[-10686, 21974, 1, -2],[-21593, -21578, 2, 2],[-43309, -10699, 4, 1],[-21561, -43354, 2, 4],[-10686, -21587, 1, 2],[-43364, -54243, 4, 5],[-43332, -10693, 4, 1],[-54204, -32469, 5, 3],[-54249, -43360, 5, 4],[ 11076, 32853,-1, -3],[ 21961, 11081,-2, -1],[ 21996, -10695,-2, 1],[-21593, 32854, 2, -3],[ 54668, -10690,-5, 1],[ 32895, 43747,-3, -4],[ 32875, -21583,-3, 2],[ 11082, -10697,-1, 1],[-21589, 32857, 2, -3],[ 11129, 54629,-1, -5],[-54209, 21967, 5, -2],[ 32891, 21966,-3, -2],[ 54655, 54631,-5, -5],[ 11095, 32858,-1, -3],[-54233, -54244, 5, 5],[ 54672, 54634,-5, -5],[-32481, -54247, 3, 5],[ 11071, -21586,-1, 2],[ 54643, 32861,-5, -3],[ 43735, -54245,-4, 5],[ 54647, 43744,-5, -4],[-32428, 32862, 3, -3],[-21561, 32862, 2, -3],[ 22007, -54248,-2, 5],[ 43783, -21580,-4, 2],[ 43745, -43357,-4, 4],[ 32847, -10693,-3, 1],[ 11124, 11084,-1, -1],[-10700, -54245, 1, 5],[-21556, 54636, 2, -5],[-10700, 21966, 1, -2],[ 22015, -43358,-2, 4],[ 22015, -32475,-2, 3],[ 21984, 54633,-2, -5],[-21545, -32471, 2, 3],[ 21992, 54634,-2, -5],[ 43762, -10699,-4, 1],[-32431, -43358, 3, 4],[-10656, 11078, 1, -1],[-32455, 11081, 3, -1],[-32455, -54247, 3, 5],[ 43783, 43743,-4, -4],[-32428, 43743, 3, -4],[ 11108, -10690,-1, 1],[-32428, -43357, 3, 4],[-54237, -21587, 5, 2],[-43360, 43745, 4, -4],[ 21964, 32860,-2, -3],[ 54641, 54638,-5, -5],[ 11127, -32469,-1, 3],[-54200, 21969, 5, -2],[-43332, -43360, 4, 4],[-32452, 43741, 3, -4],[ 32879, 21967,-3, -2],[ 54663, 21966,-5, -2],[-21561, 21968, 2, -2],[ 21972, 54629,-2, -5],[ 32867, 21966,-3, -2],[-21573, -10696, 2, 1],[-43321, -54246, 4, 5],[-10705, -43358, 1, 4],[-10661, -54250, 1, 5],[-54205, -54246, 5, 5],[ 21961, -32471,-2, 3],[ 54651, 43745,-5, -4],[-21548, 54629, 2, -5],[ 11111, 32855,-1, -3],[-54256, -10695, 5, 1],[ 43791, 32861,-4, -3],[ 11083, 43742,-1, -4],[ 32895, -32469,-3, 3],[-21560, 43742, 2, -4],[-10670, 21970, 1, -2],[ 54643, 32858,-5, -3],[ 21967, -21578,-2, 2],[ 43755, 54633,-4, -5],[-10693, -21579, 1, 2],[-43350, 54629, 4, -5],[ 11124, -21580,-1, 2],[-43324, 11077, 4, -1],[ 21979, -54246,-2, 5],[-43332, 21969, 4, -2],[ 21991, -21580,-2, 2],[-54238, -43363, 5, 4],[-21569, 21970, 2, -2],[ 43795, 21969,-4, -2],[ 54647, -21585,-5, 2],[ 43762, -43363,-4, 4],[ 43743, -21587,-4, 2],[ 11076, -21580,-1, 2],[-32461, -43355, 3, 4],[ 54648, 11081,-5, -1],[ 32904, -10699,-3, 1],[ 54647, -43362,-5, 4],[ 21993, 11077,-2, -1],[-10652, -54248, 1, 5],[ 22007, 21970,-2, -2],[-54216, 21970, 5, -2],[-32425, -10692, 3, 1],[ 54623, -43360,-5, 4],[-21573, -32469, 2, 3],[-43327, 11083, 4, -1],[ 43775, 32862,-4, -3],[-21584, 54634, 2, -5],[ 43740, -54251,-4, 5],[-21553, 21968, 2, -2],[-32461, -54244, 3, 5],[-10697, -21582, 1, 2],[ 54625, -54247,-5, 5],[-43316, -32467, 4, 3],[ 54663, -43354,-5, 4],[ 32884, -54242,-3, 5],[-54220, -10697, 5, 1],[ 11128, 43745,-1, -4],[ 54647, 43742,-5, -4],[ 54647, 43744,-5, -4],[ 43740, 54632,-4, -5],[ 43783, 54637,-4, -5],[ 11075, 54633,-1, -5],[ 43791, 54631,-4, -5],[ 11074, 11081,-1, -1],[ 54679, -10699,-5, 1],[ 54651, 21965,-5, -2],[ 43735, -43361,-4, 4],[ 43785, -43358,-4, 4],[-32456, -32471, 3, 3],[-32441, 32861, 3, -3],[ 54655, -10694,-5, 1],[ 22010, -10699,-2, 1],[ 11124, -43361,-1, 4],[-32461, -54250, 3, 5],[-54204, -43359, 5, 4],[ 43778, -10692,-4, 1],[-43328, -21583, 4, 2],[ 43755, 54632,-4, -5],[-10646, -43363, 1, 4],[ 21979, 11080,-2, -1],[ 43786, 43746,-4, -4],[-32425, 43744, 3, -4],[-10652, -43358, 1, 4],[-21537, 54632, 2, -5],[ 11071, 21965,-1, -2],[ 11115, 32854,-1, -3],[ 11116, 11077,-1, -1],[-32441, 54637, 3, -5],[ 43746, -10692,-4, 1],[ 21964, -32470,-2, 3],[-32473, -43356, 3, 4],[-10697, -54246, 1, 5],[-21569, 54637, 2, -5],[ 54656, -10698,-5, 1],[-54217, 54632, 5, -5],[-32439, 21971, 3, -2],[ 11107, 32854,-1, -3],[-54215, -10696, 5, 1],[-10646, 32857, 1, -3],[-32444, 32862, 3, -3],[-21593, 11084, 2, -1],[ 32882, -32475,-3, 3],[-54248, -43358, 5, 4],[ 32851, 11081,-3, -1],[-10700, 43743, 1, -4],[-21565, 32853, 2, -3],[-32447, -21582, 3, 2],[-43349, 54636, 4, -5],[ 54676, -54249,-5, 5],[ 32897, -10699,-3, 1],[-43316, -54247, 4, 5],[-21593, -32471, 2, 3],[ 43740, -10695,-4, 1],[-43312, 43745, 4, -4],[ 21999, -43356,-2, 4],[-54220, 32860, 5, -3],[ 22015, -32469,-2, 3],[ 21980, 43741,-2, -4],[ 32884, 11080,-3, -1],[ 43760, -21587,-4, 2],[-43349, 32858, 4, -3],[ 21991, -21579,-2, 2],[-43353, -43355, 4, 4],[-32421, -21583, 3, 2],[ 43788, -21578,-4, 2],[-54233, -21587, 5, 2],[ 43788, -43355,-4, 4],[-54225, 54636, 5, -5],[-54225, -32471, 5, 3],[ 54631, -32473,-5, 3],[ 11111, 21970,-1, -2],[-21550, -21580, 2, 2],[-32456, 32853, 3, -3],[-43327, -43360, 4, 4],[-10685, -10691, 1, 1],[ 43759, 32856,-4, -3],[ 32887, 21969,-3, -2],[ 43743, -32473,-4, 3],[ 32847, 54635,-3, -5],[-54198, -32475, 5, 3],[-21545, -43359, 2, 4],[ 22007, -32471,-2, 3],[-21537, -43363, 2, 4],[ 21994, -21587,-2, 2],[ 54623, -54250,-5, 5],[ 21983, -21583,-2, 2],[-21556, -10692, 2, 1],[ 54628, 11080,-5, -1],[ 11127, -54242,-1, 5],[ 11079, -54250,-1, 5],[ 43767, -43354,-4, 4],[ 32884, 21969,-3, -2],[ 54631, 21966,-5, -2],[ 11132, -32475,-1, 3],[-10645, 21965, 1, -2],[-10697, 54629, 1, -5],[ 11115, 43749,-1, -4],[ 54676, 32857,-5, -3],[-21533, -10695, 2, 1],[-32455, -10699, 3, 1],[-10649, -32474, 1, 3],[-21569, -21581, 2, 2],[ 32863, -54244,-3, 5],[-32425, -43362, 3, 4],[-10652, 54632, 1, -5],[ 43792, 11077,-4, -1],[ 21996, 21973,-2, -2],[-21556, -10696, 2, 1],[-10700, -54242, 1, 5],[ 54672, -43358,-5, 4],[-10660, 54638, 1, -5],[-21560, 54634, 2, -5],[-10697, -10695, 1, 1],[ 11079, 32854,-1, -3],[-54220, -10694, 5, 1],[-54252, -10694, 5, 1],[ 43759, 54631,-4, -5],[-54249, 11083, 5, -1],[ 21979, 11079,-2, -1],[ 21983, 54629,-2, -5],[-54257, 43750, 5, -4],[ 32852, 11084,-3, -1],[ 32852, 32853,-3, -3],[-21585, -43358, 2, 4],[-54244, -32475, 5, 3],[ 21983, 21974,-2, -2],[ 32871, -54242,-3, 5],[ 21991, -43357,-2, 4],[-54248, 54634, 5, -5],[ 32882, -21587,-3, 2],[ 43796, -10699,-4, 1],[ 11114, -21580,-1, 2],[-10688, -21578, 1, 2],[-10700, 11082, 1, -1],[-43327, 11080, 4, -1],[ 54660, -43357,-5, 4],[ 11099, 21969,-1, -2],[-43353, -54244, 4, 5],[-10653, 43742, 1, -4],[ 21994, -10694,-2, 1],[ 43740, -10691,-4, 1],[ 32871, -10695,-3, 1],[ 32900, 54635,-3, -5],[-21545, -21578, 2, 2],[ 43767, 11081,-4, -1],[-54244, -32475, 5, 3],[-32454, -21587, 3, 2],[-32422, -21587, 3, 2],[-43361, -32468, 4, 3],];
function part1(input) {
var bounds = {min: {x: 99999, y: 99999}, max: {x: -99999, y: -99999}};
var seconds = 0;
while(bounds.max.y - bounds.min.y != 9) {
input.forEach(a => {a[0] += a[2]; a[1] += a[3]});
var bounds = input.reduce((a,c) => ({
min: {
x: Math.min(c[0], a.min.x),
y: Math.min(c[1], a.min.y)
},
max: {
x: Math.max(c[0], a.max.x),
y: Math.max(c[1], a.max.y)
}}), {min: {x: 99999, y: 99999}, max: {x: -99999, y: -99999}})
seconds++;
}
for(var i = bounds.min.y; i <= bounds.max.y; i++) {
var line = '';
for(var j = bounds.min.x; j <= bounds.max.x; j++) {
line += input.some(a => a[0] == j && a[1] == i) ? '#' : '.';
}
console.log(line);
}
return seconds;
}
advent.run(part1, input);