From 1083edf807f89fe93e2c0953ba9cc0183097d08c Mon Sep 17 00:00:00 2001 From: nim-ka Date: Fri, 25 Nov 2022 23:12:04 +0000 Subject: [PATCH] cleanup --- 2021/1.js | 2 +- 2021/10.js | 10 +- 2021/13.js | 6 +- 2021/14.js | 26 +- 2021/2.js | 12 +- 2021/22.js | 2 +- 2021/3.js | 4 +- 2021/4.js | 6 +- 2021/6.js | 5 +- 2021/7.js | 6 +- graph.js | 9 +- out.js | 9 +- out.txt | 1292 +++------------------------------------------------- 13 files changed, 111 insertions(+), 1278 deletions(-) diff --git a/2021/1.js b/2021/1.js index a1b43e3..9060f8b 100644 --- a/2021/1.js +++ b/2021/1.js @@ -1,5 +1,5 @@ function day1(input, part2) { - return input.split`\n`.num().count((e, i, a, k = a[i - (part2 ? 3 : 1)]) => k && e > k) + return input.split("\n").num().count((e, i, a, k = a[i - (part2 ? 3 : 1)]) => k && e > k) } if (typeof window == "undefined") { diff --git a/2021/10.js b/2021/10.js index 1179f48..ef76904 100644 --- a/2021/10.js +++ b/2021/10.js @@ -13,18 +13,14 @@ function day10(input, part2) { if (opens.includes(char)) { stack.push(closes[opens.indexOf(char)]) } else if (char != stack.pop()) { - return scores1[char] + return { error: true, score: scores1[char] } } } - return stack.reverse() + return { error: false, score: stack.reduceRight((a, b) => a * 5 + scores2[b], 0) } }) - if (!part2) { - return results.filter((e) => !Array.isArray(e)).sum() - } else { - return results.filter((e) => Array.isArray(e)).map((e) => e.reduce((a, b) => a * 5 + scores2[b], 0)).medianNumeric() - } + return results.filter((e) => part2 ^ e.error).map((e) => e.score)[part2 ? "medianNumeric" : "sum"]() } if (typeof window == "undefined") { diff --git a/2021/13.js b/2021/13.js index e59ec86..20e2325 100644 --- a/2021/13.js +++ b/2021/13.js @@ -1,8 +1,8 @@ function day13(input, part2) { - input = input.split("\n").splitOnElement("") + let lines = input.split("\n").splitOnElement("") - let points = input[0].map((e) => new Point(...e.split(",").num())).pt - let instructions = input[1].map((e) => e.split(" ").last.split("=")).map((e) => [e[0], +e[1]]) + let points = lines[0].map((e) => new Point(...e.split(",").num())).pt + let instructions = lines[1].map((e) => e.split(" ").last.split("=")).map((e) => [e[0], +e[1]]) for (let instruction of instructions) { let pos = instruction[1] diff --git a/2021/14.js b/2021/14.js index 3926828..0f01dc0 100644 --- a/2021/14.js +++ b/2021/14.js @@ -1,8 +1,12 @@ -function day14(input, part2) { - input = input.split("\n").splitOnElement("") +function getNum(letter) { + return letter.charCodeAt(0) - "A".charCodeAt(0) +} - let init = input[0][0].split("") - let rules = input[1].map((e) => e.split(" -> ")) +function day14(input, part2) { + let lines = input.split("\n").splitOnElement("") + + let init = lines[0][0].split("") + let rules = lines[1].map((e) => e.split(" -> ")) let counts = {} @@ -29,11 +33,19 @@ function day14(input, part2) { } } - counts = Object.keys(counts).map((key) => [key.split(""), counts[key]]) + // this double counts all letters except the first and last so we add one to those and / 2 at end + let letters = Array(26).fill(0) + letters[getNum(init[0])]++ + letters[getNum(init[init.length - 1])]++ - let letters = counts.flatMap((e) => e[0]).uniq().map((letter) => (counts.filter((e) => e[0].includes(letter)).map((e) => e[0].count(letter) * e[1]).sum() + (letter == init[0] || letter == init[init.length - 1])) / 2) + for (let pair in counts) { + letters[getNum(pair[0])] += counts[pair] + letters[getNum(pair[1])] += counts[pair] + } - return letters.max() - letters.min() + letters = letters.truthy() + + return (letters.max() - letters.min()) / 2 } if (typeof window == "undefined") { diff --git a/2021/2.js b/2021/2.js index fdb1580..4bab611 100644 --- a/2021/2.js +++ b/2021/2.js @@ -3,13 +3,17 @@ function day2(input, part2) { let y = 0 let a = 0 - input.split`\n`.forEach((e) => { + for (let line of input.split("\n")) { if (!part2) { - eval(e.replace("forward", "x +=").replace("up", "y -=").replace("down", "y +=")) + eval(line.replace("forward", "x +=") + .replace("up", "y -=") + .replace("down", "y +=")) } else { - eval(e.replace(/forward (.+)/, "x += $1; y += a * $1").replace("up", "a -=").replace("down", "a +=")) + eval(line.replace(/forward (.+)/, "x += $1; y += a * $1") + .replace("up", "a -=") + .replace("down", "a +=")) } - }) + } return x * y } diff --git a/2021/22.js b/2021/22.js index 59e7e2f..500bd3c 100644 --- a/2021/22.js +++ b/2021/22.js @@ -30,7 +30,7 @@ class Cuboid { } function day20(input, part2) { - let lines = input.split`\n` + let lines = input.split("\n") let cuboids = [] diff --git a/2021/3.js b/2021/3.js index 2a3f499..b37f67c 100644 --- a/2021/3.js +++ b/2021/3.js @@ -4,7 +4,7 @@ function day3(input, part2) { if (!part2) { let gamma = g.getColumns().map((col) => col.mode()) let epsilon = g.getColumns().map((col) => col.antimode()) - return parseInt(gamma.join``, 2) * parseInt(epsilon.join``, 2) + return parseInt(gamma.join(""), 2) * parseInt(epsilon.join(""), 2) } else { let oxy = g.getRows() let co2 = g.getRows() @@ -16,7 +16,7 @@ function day3(input, part2) { co2 = co2.filter((e) => e[i] == co2Bit) } - return parseInt(oxy[0].join``, 2) * parseInt(co2[0].join``, 2) + return parseInt(oxy[0].join(""), 2) * parseInt(co2[0].join(""), 2) } } diff --git a/2021/4.js b/2021/4.js index 254f4a8..8f02198 100644 --- a/2021/4.js +++ b/2021/4.js @@ -1,8 +1,8 @@ function day4(input, part2) { - input = input.split("\n") + let lines = input.split("\n") - let seq = input.shift().split(",").num() - let grids = input.splitOnElement("").filter((e) => e.length).map((grid) => Grid.fromStr(grid.map((line) => line.replace(/^ /, "")).join("\n"), /\s+/).mapMut((e) => [+e, false])) + let seq = lines.shift().split(",").num() + let grids = lines.splitOnElement("").filter((e) => e.length).map((grid) => Grid.fromStr(grid.map((line) => line.replace(/^ /, "")).join("\n"), /\s+/).mapMut((e) => [+e, false])) let score diff --git a/2021/6.js b/2021/6.js index c507940..206af61 100644 --- a/2021/6.js +++ b/2021/6.js @@ -1,7 +1,6 @@ function day6(input, part2) { - input = input.split(",").num() - - let counts = Array(9).fill().map((_, i) => input.count(i)) + let fish = input.split(",").num() + let counts = Array(9).fill().map((_, i) => fish.count(i)) for (let i = 0; i < (part2 ? 256 : 80); i++) { counts.push(counts.shift()) diff --git a/2021/7.js b/2021/7.js index 5752c3d..be5dc7d 100644 --- a/2021/7.js +++ b/2021/7.js @@ -1,11 +1,11 @@ function day7(input, part2) { - input = input.split(",").num() + let crabs = input.split(",").num() - let max = input.max() + let max = crabs.max() let costs = [] for (let i = 0; i < max; i++) { - costs[i] = input.map((e) => { + costs[i] = crabs.map((e) => { let dist = Math.abs(e - i) return part2 ? dist * (dist + 1) / 2 : dist }).sum() diff --git a/graph.js b/graph.js index 6df2538..468243a 100644 --- a/graph.js +++ b/graph.js @@ -77,6 +77,8 @@ Node = class Node { let visited = {} let toVisit = [this] + let i = 0 + while (toVisit.length) { let toVisitNew = [] @@ -92,13 +94,16 @@ Node = class Node { }) toVisit = toVisitNew - console.log(toVisit.length) + + if (++i % 100 == 0) { + console.log(toVisit.length) + } } console.timeEnd("heap gen") console.time("search") - let i = 0 + i = 0 while (heap.data.length) { let min = heap.extract() diff --git a/out.js b/out.js index 4f8f95a..6419e54 100644 --- a/out.js +++ b/out.js @@ -761,6 +761,8 @@ Node = class Node { let visited = {} let toVisit = [this] + let i = 0 + while (toVisit.length) { let toVisitNew = [] @@ -776,13 +778,16 @@ Node = class Node { }) toVisit = toVisitNew - console.log(toVisit.length) + + if (++i % 100 == 0) { + console.log(toVisit.length) + } } console.timeEnd("heap gen") console.time("search") - let i = 0 + i = 0 while (heap.data.length) { let min = heap.extract() diff --git a/out.txt b/out.txt index cad4de8..fd17b21 100644 --- a/out.txt +++ b/out.txt @@ -1,79 +1,79 @@ -2021 day 1 part 1: 0.658ms +2021 day 1 part 1: 0.623ms 2021 day 1 part 1: Got 1292, expected 1292 2021 day 1 part 1: SUCCESS 2021 day 1 part 2: 0.469ms 2021 day 1 part 2: Got 1262, expected 1262 2021 day 1 part 2: SUCCESS -2021 day 2 part 1: 1.951ms +2021 day 2 part 1: 2.939ms 2021 day 2 part 1: Got 1813801, expected 1813801 2021 day 2 part 1: SUCCESS -2021 day 2 part 2: 2.567ms +2021 day 2 part 2: 2.712ms 2021 day 2 part 2: Got 1960569556, expected 1960569556 2021 day 2 part 2: SUCCESS -2021 day 3 part 1: 15.677ms +2021 day 3 part 1: 16.919ms 2021 day 3 part 1: Got 3882564, expected 3882564 2021 day 3 part 1: SUCCESS -2021 day 3 part 2: 7.946ms +2021 day 3 part 2: 7.571ms 2021 day 3 part 2: Got 3385170, expected 3385170 2021 day 3 part 2: SUCCESS -2021 day 4 part 1: 23.222ms +2021 day 4 part 1: 23.89ms 2021 day 4 part 1: Got 54275, expected 54275 2021 day 4 part 1: SUCCESS -2021 day 4 part 2: 12.334ms +2021 day 4 part 2: 14.49ms 2021 day 4 part 2: Got 13158, expected 13158 2021 day 4 part 2: SUCCESS -2021 day 5 part 1: 375.817ms +2021 day 5 part 1: 355.85ms 2021 day 5 part 1: Got 6856, expected 6856 2021 day 5 part 1: SUCCESS -2021 day 5 part 2: 580.205ms +2021 day 5 part 2: 579.865ms 2021 day 5 part 2: Got 20666, expected 20666 2021 day 5 part 2: SUCCESS -2021 day 6 part 1: 0.237ms +2021 day 6 part 1: 0.241ms 2021 day 6 part 1: Got 353274, expected 353274 2021 day 6 part 1: SUCCESS -2021 day 6 part 2: 0.167ms +2021 day 6 part 2: 0.173ms 2021 day 6 part 2: Got 1609314870967, expected 1609314870967 2021 day 6 part 2: SUCCESS -2021 day 7 part 1: 99.013ms +2021 day 7 part 1: 98.256ms 2021 day 7 part 1: Got 347011, expected 347011 2021 day 7 part 1: SUCCESS -2021 day 7 part 2: 78.519ms +2021 day 7 part 2: 79.237ms 2021 day 7 part 2: Got 98363777, expected 98363777 2021 day 7 part 2: SUCCESS -2021 day 8 part 1: 3.902ms +2021 day 8 part 1: 4.101ms 2021 day 8 part 1: Got 525, expected 525 2021 day 8 part 1: SUCCESS -2021 day 8 part 2: 10.451ms +2021 day 8 part 2: 8.222ms 2021 day 8 part 2: Got 1083859, expected 1083859 2021 day 8 part 2: SUCCESS -2021 day 9 part 1: 62.451ms +2021 day 9 part 1: 64.667ms 2021 day 9 part 1: Got 585, expected 585 2021 day 9 part 1: SUCCESS -2021 day 9 part 2: 278.819ms +2021 day 9 part 2: 255.377ms 2021 day 9 part 2: Got 827904, expected 827904 2021 day 9 part 2: SUCCESS -2021 day 10 part 1: 3.629ms +2021 day 10 part 1: 2.287ms 2021 day 10 part 1: Got 469755, expected 469755 2021 day 10 part 1: SUCCESS -2021 day 10 part 2: 2.604ms +2021 day 10 part 2: 1.807ms 2021 day 10 part 2: Got 2762335572, expected 2762335572 2021 day 10 part 2: SUCCESS -2021 day 11 part 1: 27.719ms +2021 day 11 part 1: 25.301ms 2021 day 11 part 1: Got 1691, expected 1691 2021 day 11 part 1: SUCCESS -2021 day 11 part 2: 31.766ms +2021 day 11 part 2: 34.194ms 2021 day 11 part 2: Got 216, expected 216 2021 day 11 part 2: SUCCESS -2021 day 12 part 1: 62.505ms +2021 day 12 part 1: 61.654ms 2021 day 12 part 1: Got 4241, expected 4241 2021 day 12 part 1: SUCCESS -2021 day 12 part 2: 1.964s +2021 day 12 part 2: 1.937s 2021 day 12 part 2: Got 122134, expected 122134 2021 day 12 part 2: SUCCESS -2021 day 13 part 1: 24.749ms +2021 day 13 part 1: 23.127ms 2021 day 13 part 1: Got 695, expected 695 2021 day 13 part 1: SUCCESS -2021 day 13 part 2: 77.991ms +2021 day 13 part 2: 75.756ms 2021 day 13 part 2: Got ## ## #### ## # # # ### ## # # # # # # # # # # # # # # # # # # # # # # @@ -86,212 +86,14 @@ # # # # # # # # # # # # # ### ## #### ### #### ## # ## 2021 day 13 part 2: SUCCESS -2021 day 14 part 1: 2.116ms +2021 day 14 part 1: 1.744ms 2021 day 14 part 1: Got 2068, expected 2068 2021 day 14 part 1: SUCCESS -2021 day 14 part 2: 4.458ms +2021 day 14 part 2: 3.931ms 2021 day 14 part 2: Got 2158894777814, expected 2158894777814 2021 day 14 part 2: SUCCESS -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 -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 -0 -heap gen: 34.92ms +heap gen: 35.453ms 9000 8000 7000 @@ -301,1010 +103,20 @@ heap gen: 34.92ms 3000 2000 1000 -search: 69.697ms -2021 day 15 part 1: 184.613ms +search: 76.922ms +2021 day 15 part 1: 187.406ms 2021 day 15 part 1: Got 498, expected 498 2021 day 15 part 1: SUCCESS -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 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 499 -500 -499 -498 -497 -496 -495 -494 -493 -492 -491 -490 -489 -488 -487 -486 -485 -484 -483 -482 -481 -480 -479 -478 -477 -476 -475 -474 -473 -472 -471 -470 -469 -468 -467 -466 -465 -464 -463 -462 -461 -460 -459 -458 -457 -456 -455 -454 -453 -452 -451 -450 -449 -448 -447 -446 -445 -444 -443 -442 -441 -440 -439 -438 -437 -436 -435 -434 -433 -432 -431 -430 -429 -428 -427 -426 -425 -424 -423 -422 -421 -420 -419 -418 -417 -416 -415 -414 -413 -412 -411 -410 -409 -408 -407 -406 -405 -404 -403 -402 -401 -400 399 -398 -397 -396 -395 -394 -393 -392 -391 -390 -389 -388 -387 -386 -385 -384 -383 -382 -381 -380 -379 -378 -377 -376 -375 -374 -373 -372 -371 -370 -369 -368 -367 -366 -365 -364 -363 -362 -361 -360 -359 -358 -357 -356 -355 -354 -353 -352 -351 -350 -349 -348 -347 -346 -345 -344 -343 -342 -341 -340 -339 -338 -337 -336 -335 -334 -333 -332 -331 -330 -329 -328 -327 -326 -325 -324 -323 -322 -321 -320 -319 -318 -317 -316 -315 -314 -313 -312 -311 -310 -309 -308 -307 -306 -305 -304 -303 -302 -301 -300 299 -298 -297 -296 -295 -294 -293 -292 -291 -290 -289 -288 -287 -286 -285 -284 -283 -282 -281 -280 -279 -278 -277 -276 -275 -274 -273 -272 -271 -270 -269 -268 -267 -266 -265 -264 -263 -262 -261 -260 -259 -258 -257 -256 -255 -254 -253 -252 -251 -250 -249 -248 -247 -246 -245 -244 -243 -242 -241 -240 -239 -238 -237 -236 -235 -234 -233 -232 -231 -230 -229 -228 -227 -226 -225 -224 -223 -222 -221 -220 -219 -218 -217 -216 -215 -214 -213 -212 -211 -210 -209 -208 -207 -206 -205 -204 -203 -202 -201 -200 199 -198 -197 -196 -195 -194 -193 -192 -191 -190 -189 -188 -187 -186 -185 -184 -183 -182 -181 -180 -179 -178 -177 -176 -175 -174 -173 -172 -171 -170 -169 -168 -167 -166 -165 -164 -163 -162 -161 -160 -159 -158 -157 -156 -155 -154 -153 -152 -151 -150 -149 -148 -147 -146 -145 -144 -143 -142 -141 -140 -139 -138 -137 -136 -135 -134 -133 -132 -131 -130 -129 -128 -127 -126 -125 -124 -123 -122 -121 -120 -119 -118 -117 -116 -115 -114 -113 -112 -111 -110 -109 -108 -107 -106 -105 -104 -103 -102 -101 -100 99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 -0 -heap gen: 568.484ms +heap gen: 475.846ms 249000 248000 247000 @@ -1554,26 +366,26 @@ heap gen: 568.484ms 3000 2000 1000 -search: 16.241s -2021 day 15 part 2: 18.613s +search: 16.333s +2021 day 15 part 2: 18.610s 2021 day 15 part 2: Got 2901, expected 2901 2021 day 15 part 2: SUCCESS -2021 day 16 part 1: 34.339ms +2021 day 16 part 1: 32.713ms 2021 day 16 part 1: Got 1038, expected 1038 2021 day 16 part 1: SUCCESS -2021 day 16 part 2: 18.058ms +2021 day 16 part 2: 15.813ms 2021 day 16 part 2: Got 246761930504, expected 246761930504 2021 day 16 part 2: SUCCESS -2021 day 17 part 1: 65.675ms +2021 day 17 part 1: 64.78ms 2021 day 17 part 1: Got 4656, expected 4656 2021 day 17 part 1: SUCCESS -2021 day 17 part 2: 55.43ms +2021 day 17 part 2: 51.169ms 2021 day 17 part 2: Got 1908, expected 1908 2021 day 17 part 2: SUCCESS -2021 day 18 part 1: 23.883ms +2021 day 18 part 1: 24.803ms 2021 day 18 part 1: Got 3494, expected 3494 2021 day 18 part 1: SUCCESS -2021 day 18 part 2: 236.218ms +2021 day 18 part 2: 231.749ms 2021 day 18 part 2: Got 4712, expected 4712 2021 day 18 part 2: SUCCESS linked 0<->5 (0 point 0 == 5 point 9 with rotation 8) @@ -1611,7 +423,7 @@ linked 35<->9 (35 point 0 == 9 point 11 with rotation 9) linked 9<->25 (9 point 0 == 25 point 18 with rotation 5) linked 25<->29 (25 point 0 == 29 point 7 with rotation 23) linked 29<->21 (29 point 0 == 21 point 6 with rotation 3) -2021 day 19 part 1: 37.496s +2021 day 19 part 1: 37.977s 2021 day 19 part 1: Got 447, expected 447 2021 day 19 part 1: SUCCESS linked 0<->5 (0 point 0 == 5 point 9 with rotation 8) @@ -1649,25 +461,25 @@ linked 35<->9 (35 point 0 == 9 point 11 with rotation 9) linked 9<->25 (9 point 0 == 25 point 18 with rotation 5) linked 25<->29 (25 point 0 == 29 point 7 with rotation 23) linked 29<->21 (29 point 0 == 21 point 6 with rotation 3) -2021 day 19 part 2: 37.058s +2021 day 19 part 2: 37.324s 2021 day 19 part 2: Got 15672, expected 15672 2021 day 19 part 2: SUCCESS -2021 day 20 part 1: 88.768ms +2021 day 20 part 1: 80.186ms 2021 day 20 part 1: Got 4873, expected 4873 2021 day 20 part 1: SUCCESS -2021 day 20 part 2: 1.912s +2021 day 20 part 2: 1.900s 2021 day 20 part 2: Got 16394, expected 16394 2021 day 20 part 2: SUCCESS -2021 day 21 part 1: 0.553ms +2021 day 21 part 1: 0.533ms 2021 day 21 part 1: Got 597600, expected 597600 2021 day 21 part 1: SUCCESS -2021 day 21 part 2: 320.731ms +2021 day 21 part 2: 317.957ms 2021 day 21 part 2: Got 634769613696613, expected 634769613696613 2021 day 21 part 2: SUCCESS -2021 day 22 part 1: 38.235ms +2021 day 22 part 1: 37.65ms 2021 day 22 part 1: Got 589411, expected 589411 2021 day 22 part 1: SUCCESS -2021 day 22 part 2: 117.909ms +2021 day 22 part 2: 124.157ms 2021 day 22 part 2: Got 1130514303649907, expected 1130514303649907 2021 day 22 part 2: SUCCESS iteration 0 heap size 28 min energy 0 @@ -1677,7 +489,7 @@ iteration 30000 heap size 14414 min energy 7695 iteration 40000 heap size 15108 min energy 8555 iteration 50000 heap size 14881 min energy 9425 iteration 60000 heap size 12860 min energy 10003 -2021 day 23 part 1: 2.509s +2021 day 23 part 1: 2.511s 2021 day 23 part 1: Got 10607, expected 10607 2021 day 23 part 1: SUCCESS iteration 0 heap size 28 min energy 0 @@ -1689,15 +501,15 @@ iteration 50000 heap size 11889 min energy 9313 iteration 60000 heap size 11552 min energy 10455 iteration 70000 heap size 7414 min energy 12084 iteration 80000 heap size 3371 min energy 14557 -2021 day 23 part 2: 2.632s +2021 day 23 part 2: 2.536s 2021 day 23 part 2: Got 59071, expected 59071 2021 day 23 part 2: SUCCESS -2021 day 24 part 1: 0.302ms +2021 day 24 part 1: 0.392ms 2021 day 24 part 1: Got 99691891979938, expected 99691891979938 2021 day 24 part 1: SUCCESS -2021 day 24 part 2: 0.309ms +2021 day 24 part 2: 0.25ms 2021 day 24 part 2: Got 27141191213911, expected 27141191213911 2021 day 24 part 2: SUCCESS -2021 day 25: 2.220s +2021 day 25: 2.243s 2021 day 25: Got 534, expected 534 2021 day 25: SUCCESS