From 9a7eef5186a5a828768434049be66c2be18656fb Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Wed, 18 Dec 2024 08:12:37 +0100 Subject: [PATCH] day 17 puzzle 1 --- progress.png | Bin 127238 -> 131284 bytes progress.yaml | 6 ++- res/examples/day17.txt | 5 +++ src/day17/puzzle1.typ | 85 +++++++++++++++++++++++++++++++++++++++++ src/day17/puzzle2.typ | 0 5 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 res/examples/day17.txt create mode 100644 src/day17/puzzle1.typ create mode 100644 src/day17/puzzle2.typ diff --git a/progress.png b/progress.png index 0408b86a143bc3ee4f0b0708be2a8749cff13a25..d44bc715d4e1f79aad0d9482beed2cdfbc290f5a 100644 GIT binary patch delta 45486 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%0A!6iKNE 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 diff --git a/progress.yaml b/progress.yaml index 4efa9f4..31d7af7 100644 --- a/progress.yaml +++ b/progress.yaml @@ -27,4 +27,8 @@ 14: stars: 2 15: - stars: 2 \ No newline at end of file + stars: 2 +16: + stars: 0 +17: + stars: 1 \ No newline at end of file diff --git a/res/examples/day17.txt b/res/examples/day17.txt new file mode 100644 index 0000000..36fbf8d --- /dev/null +++ b/res/examples/day17.txt @@ -0,0 +1,5 @@ +Register A: 729 +Register B: 0 +Register C: 0 + +Program: 0,1,5,4,3,0 \ No newline at end of file diff --git a/src/day17/puzzle1.typ b/src/day17/puzzle1.typ new file mode 100644 index 0000000..6cda181 --- /dev/null +++ b/src/day17/puzzle1.typ @@ -0,0 +1,85 @@ +#import "/src/utils.typ": * + +#let ADV = 0 +#let BXL = 1 +#let BST = 2 +#let JNZ = 3 +#let BXC = 4 +#let OUT = 5 +#let BDV = 6 +#let CDV = 7 + +#let get-combo(regs, value) = { + if value >= 7 { + panic() + } + if value <= 3 { + return value + } + return regs.at(value - 4) +} + +#let solve(input) = { + let (registers, program) = input.split("\n\n") + + let regs = () + for line in registers.split("\n") { + regs.push( + int( + line.split(": ") + .last() + ) + ) + } + program = program.split(": ") + .last() + .split(",") + .map(int) + + let out = () + let pc = 0 + while pc < program.len() { + let op = program.at(pc) + let val = program.at(pc + 1) + if op == ADV { + let num = regs.at(0) + let den = get-combo(regs, val) + let res = num.bit-rshift(den) + regs.at(0) = res + } else if op == BXL { + regs.at(1) = regs.at(1).bit-xor(val) + } else if op == BST { + regs.at(1) = get-combo(regs, val).bit-and(0b111) + } else if op == JNZ { + if regs.at(0) != 0 { + pc = val + continue + } + } else if op == BXC { + regs.at(1) = regs.at(1).bit-xor(regs.at(2)) + } else if op == OUT { + out.push(get-combo(regs, val).bit-and(0b111)) + } else if op == BDV { + let num = regs.at(0) + let den = get-combo(regs, val) + let res = num.bit-rshift(den) + regs.at(1) = res + } else if op == CDV { + let num = regs.at(0) + let den = get-combo(regs, val) + let res = num.bit-rshift(den) + regs.at(2) = res + } else { + panic("Unknown instruction " + str(op)) + } + pc += 2 + } + + return out.map(str).join(",") +} + +#show-puzzle( + 17, 1, + solve, + example: "4,6,3,5,6,3,5,2,1,0" +) \ No newline at end of file diff --git a/src/day17/puzzle2.typ b/src/day17/puzzle2.typ new file mode 100644 index 0000000..e69de29