diff --git a/adventofcode/README.md b/adventofcode/README.md index b35578f1..0135282b 100644 --- a/adventofcode/README.md +++ b/adventofcode/README.md @@ -1454,59 +1454,59 @@ [20232402tests]: src/test/java/org/ck/adventofcode/year2023/Day24Test.java [20232501tests]: src/test/java/org/ck/adventofcode/year2023/Day25Test.java -# 2024 (32/49) +# 2024 (34/49) -| # | Name | Solution | Test | -|---------:|---------------------------------------------------|:------------------------------------:|:---------------------------------:| -| 20240101 | [Day 1: Historian Hysteria][20240101] | ✅[💾][20240101solution] | ✅[💾][20240101tests] | -| 20240102 | [Day 1: Historian Hysteria - Part 2][20240102] | ✅[💾][20240102solution] | ✅[💾][20240102tests] | -| 20240201 | [Day 2: Red-Nosed Reports][20240201] | ✅[💾][20240201solution] | ✅[💾][20240201tests] | -| 20240202 | [Day 2: Red-Nosed Reports - Part 2][20240202] | ✅[💾][20240202solution] | ✅[💾][20240202tests] | -| 20240301 | [Day 3: Mull It Over][20240301] | ✅[💾][20240301solution] | ✅[💾][20240301tests] | -| 20240302 | [Day 3: Mull It Over - Part 2][20240302] | ✅[💾][20240302solution] | ✅[💾][20240302tests] | -| 20240401 | [Day 4: Ceres Search][20240401] | ✅[💾][20240401solution] | ✅[💾][20240401tests] | -| 20240402 | [Day 4: Ceres Search - Part 2][20240402] | ✅[💾][20240402solution] | ✅[💾][20240402tests] | -| 20240501 | [Day 5: Print Queue][20240501] | ✅[💾][20240501solution] | ✅[💾][20240501tests] | -| 20240502 | [Day 5: Print Queue - Part 2][20240502] | ✅[💾][20240502solution] | ✅[💾][20240502tests] | -| 20240601 | [Day 6: Guard Gallivant][20240601] | ✅[💾][20240601solution] | ✅[💾][20240601tests] | -| 20240602 | [Day 6: Guard Gallivant - Part 2][20240602] | ✅[💾][20240602solution] | ✅[💾][20240602tests] | -| 20240701 | [Day 7: Bridge Repair][20240701] | ✅[💾][20240701solution] | ✅[💾][20240701tests] | -| 20240702 | [Day 7: Bridge Repair - Part 2][20240702] | ✅[💾][20240702solution] | ✅[💾][20240702tests] | -| 20240801 | [Day 8: Resonant Collinearity][20240801] | ✅[💾][20240801solution] | ✅[💾][20240801tests] | -| 20240802 | [Day 8: Resonant Collinearity - Part 2][20240802] | ✅[💾][20240802solution] | ✅[💾][20240802tests] | -| 20240901 | [Day 9: Disk Fragmenter][20240901] | ✅[💾][20240901solution] | ✅[💾][20240901tests] | -| 20240902 | [Day 9: Disk Fragmenter - Part 2][20240902] | ✅[💾][20240902solution] | ✅[💾][20240902tests] | -| 20241001 | [Day 10: Hoof It][20241001] | ✅[💾][20241001solution] | ✅[💾][20241001tests] | -| 20241002 | [Day 10: Hoof It - Part 2][20241002] | ✅[💾][20241002solution] | ✅[💾][20241002tests] | -| 20241101 | [Day 11: Plutonian Pebbles][20241101] | ✅[💾][20241101solution] | ✅[💾][20241101tests] | -| 20241102 | [Day 11: Plutonian Pebbles - Part 2][20241102] | ✅[💾][20241102solution] | ✅[💾][20241102tests] | -| 20241201 | [Day 12: Garden Groups][20241201] | ✅[💾][20241201solution] | ✅[💾][20241201tests] | -| 20241202 | [Day 12: Garden Groups - Part 2][20241202] | ✅[💾][20241202solution] | ✅[💾][20241202tests] | -| 20241301 | [Day 13: Claw Contraption][20241301] | ✅[💾][20241301solution] | ✅[💾][20241301tests] | -| 20241302 | [Day 13: Claw Contraption - Part 2][20241302] | ✅[💾][20241302solution] | ✅[💾][20241302tests] | -| 20241401 | [Day 14: Restroom Redoubt][20241401] | ✅[💾][20241401solution] | ✅[💾][20241401tests] | -| 20241402 | [Day 14: Restroom Redoubt - Part 2][20241402] | ✅[💾][20241402solution] | ✅[💾][20241402tests] | -| 20241501 | [Day 15: Warehouse Woes][20241501] | ✅[💾][20241501solution] | ✅[💾][20241501tests] | -| 20241502 | [Day 15: Warehouse Woes - Part 2][20241502] | ✅[💾][20241502solution] | ✅[💾][20241502tests] | -| 20241601 | [Day 16: Reindeer Maze][20241601] | ✅[💾][20241601solution] | ✅[💾][20241601tests] | -| 20241602 | [Day 16: Reindeer Maze - Part 2][20241602] | ✅[💾][20241602solution] | ✅[💾][20241602tests] | -| 20241701 | [Day 17: ?][20241701] | [💾][20241701solution] | [💾][20241701tests] | -| 20241702 | [Day 17: ? - Part 2][20241702] | [💾][20241702solution] | [💾][20241702tests] | -| 20241801 | [Day 18: ?][20241801] | [💾][20241801solution] | [💾][20241801tests] | -| 20241802 | [Day 18: ? - Part 2][20241802] | [💾][20241802solution] | [💾][20241802tests] | -| 20241901 | [Day 19: ?][20241901] | [💾][20241901solution] | [💾][20241901tests] | -| 20241902 | [Day 19: ? - Part 2][20241902] | [💾][20241902solution] | [💾][20241902tests] | -| 20242001 | [Day 20: ?][20242001] | [💾][20242001solution] | [💾][20242001tests] | -| 20242002 | [Day 20: ? - Part 2][20242002] | [💾][20242002solution] | [💾][20242002tests] | -| 20242101 | [Day 21: ?][20242101] | [💾][20242101solution] | [💾][20242101tests] | -| 20242102 | [Day 21: ? - Part 2][20242102] | [💾][20242102solution] | [💾][20242102tests] | -| 20242201 | [Day 22: ?][20242201] | [💾][20242201solution] | [💾][20242201tests] | -| 20242202 | [Day 22: ? - Part 2][20242202] | [💾][20242202solution] | [💾][20242202tests] | -| 20242301 | [Day 23: ?][20242301] | [💾][20242301solution] | [💾][20242301tests] | -| 20242302 | [Day 23: ? - Part 2][20242302] | [💾][20242302solution] | [💾][20242302tests] | -| 20242401 | [Day 24: ?][20242401] | [💾][20242401solution] | [💾][20242401tests] | -| 20242402 | [Day 24: ? - Part 2][20242402] | [💾][20242402solution] | [💾][20242402tests] | -| 20242501 | [Day 25: ?][20242501] | [💾][20242501solution] | [💾][20242501tests] | +| # | Name | Solution | Test | +|---------:|-----------------------------------------------------|:------------------------------------:|:---------------------------------:| +| 20240101 | [Day 1: Historian Hysteria][20240101] | ✅[💾][20240101solution] | ✅[💾][20240101tests] | +| 20240102 | [Day 1: Historian Hysteria - Part 2][20240102] | ✅[💾][20240102solution] | ✅[💾][20240102tests] | +| 20240201 | [Day 2: Red-Nosed Reports][20240201] | ✅[💾][20240201solution] | ✅[💾][20240201tests] | +| 20240202 | [Day 2: Red-Nosed Reports - Part 2][20240202] | ✅[💾][20240202solution] | ✅[💾][20240202tests] | +| 20240301 | [Day 3: Mull It Over][20240301] | ✅[💾][20240301solution] | ✅[💾][20240301tests] | +| 20240302 | [Day 3: Mull It Over - Part 2][20240302] | ✅[💾][20240302solution] | ✅[💾][20240302tests] | +| 20240401 | [Day 4: Ceres Search][20240401] | ✅[💾][20240401solution] | ✅[💾][20240401tests] | +| 20240402 | [Day 4: Ceres Search - Part 2][20240402] | ✅[💾][20240402solution] | ✅[💾][20240402tests] | +| 20240501 | [Day 5: Print Queue][20240501] | ✅[💾][20240501solution] | ✅[💾][20240501tests] | +| 20240502 | [Day 5: Print Queue - Part 2][20240502] | ✅[💾][20240502solution] | ✅[💾][20240502tests] | +| 20240601 | [Day 6: Guard Gallivant][20240601] | ✅[💾][20240601solution] | ✅[💾][20240601tests] | +| 20240602 | [Day 6: Guard Gallivant - Part 2][20240602] | ✅[💾][20240602solution] | ✅[💾][20240602tests] | +| 20240701 | [Day 7: Bridge Repair][20240701] | ✅[💾][20240701solution] | ✅[💾][20240701tests] | +| 20240702 | [Day 7: Bridge Repair - Part 2][20240702] | ✅[💾][20240702solution] | ✅[💾][20240702tests] | +| 20240801 | [Day 8: Resonant Collinearity][20240801] | ✅[💾][20240801solution] | ✅[💾][20240801tests] | +| 20240802 | [Day 8: Resonant Collinearity - Part 2][20240802] | ✅[💾][20240802solution] | ✅[💾][20240802tests] | +| 20240901 | [Day 9: Disk Fragmenter][20240901] | ✅[💾][20240901solution] | ✅[💾][20240901tests] | +| 20240902 | [Day 9: Disk Fragmenter - Part 2][20240902] | ✅[💾][20240902solution] | ✅[💾][20240902tests] | +| 20241001 | [Day 10: Hoof It][20241001] | ✅[💾][20241001solution] | ✅[💾][20241001tests] | +| 20241002 | [Day 10: Hoof It - Part 2][20241002] | ✅[💾][20241002solution] | ✅[💾][20241002tests] | +| 20241101 | [Day 11: Plutonian Pebbles][20241101] | ✅[💾][20241101solution] | ✅[💾][20241101tests] | +| 20241102 | [Day 11: Plutonian Pebbles - Part 2][20241102] | ✅[💾][20241102solution] | ✅[💾][20241102tests] | +| 20241201 | [Day 12: Garden Groups][20241201] | ✅[💾][20241201solution] | ✅[💾][20241201tests] | +| 20241202 | [Day 12: Garden Groups - Part 2][20241202] | ✅[💾][20241202solution] | ✅[💾][20241202tests] | +| 20241301 | [Day 13: Claw Contraption][20241301] | ✅[💾][20241301solution] | ✅[💾][20241301tests] | +| 20241302 | [Day 13: Claw Contraption - Part 2][20241302] | ✅[💾][20241302solution] | ✅[💾][20241302tests] | +| 20241401 | [Day 14: Restroom Redoubt][20241401] | ✅[💾][20241401solution] | ✅[💾][20241401tests] | +| 20241402 | [Day 14: Restroom Redoubt - Part 2][20241402] | ✅[💾][20241402solution] | ✅[💾][20241402tests] | +| 20241501 | [Day 15: Warehouse Woes][20241501] | ✅[💾][20241501solution] | ✅[💾][20241501tests] | +| 20241502 | [Day 15: Warehouse Woes - Part 2][20241502] | ✅[💾][20241502solution] | ✅[💾][20241502tests] | +| 20241601 | [Day 16: Reindeer Maze][20241601] | ✅[💾][20241601solution] | ✅[💾][20241601tests] | +| 20241602 | [Day 16: Reindeer Maze - Part 2][20241602] | ✅[💾][20241602solution] | ✅[💾][20241602tests] | +| 20241701 | [Day 17: Chronospatial Computer][20241701] | ✅[💾][20241701solution] | ✅[💾][20241701tests] | +| 20241702 | [Day 17: Chronospatial Computer - Part 2][20241702] | ✅[💾][20241702solution] | ✅[💾][20241702tests] | +| 20241801 | [Day 18: ?][20241801] | [💾][20241801solution] | [💾][20241801tests] | +| 20241802 | [Day 18: ? - Part 2][20241802] | [💾][20241802solution] | [💾][20241802tests] | +| 20241901 | [Day 19: ?][20241901] | [💾][20241901solution] | [💾][20241901tests] | +| 20241902 | [Day 19: ? - Part 2][20241902] | [💾][20241902solution] | [💾][20241902tests] | +| 20242001 | [Day 20: ?][20242001] | [💾][20242001solution] | [💾][20242001tests] | +| 20242002 | [Day 20: ? - Part 2][20242002] | [💾][20242002solution] | [💾][20242002tests] | +| 20242101 | [Day 21: ?][20242101] | [💾][20242101solution] | [💾][20242101tests] | +| 20242102 | [Day 21: ? - Part 2][20242102] | [💾][20242102solution] | [💾][20242102tests] | +| 20242201 | [Day 22: ?][20242201] | [💾][20242201solution] | [💾][20242201tests] | +| 20242202 | [Day 22: ? - Part 2][20242202] | [💾][20242202solution] | [💾][20242202tests] | +| 20242301 | [Day 23: ?][20242301] | [💾][20242301solution] | [💾][20242301tests] | +| 20242302 | [Day 23: ? - Part 2][20242302] | [💾][20242302solution] | [💾][20242302tests] | +| 20242401 | [Day 24: ?][20242401] | [💾][20242401solution] | [💾][20242401tests] | +| 20242402 | [Day 24: ? - Part 2][20242402] | [💾][20242402solution] | [💾][20242402tests] | +| 20242501 | [Day 25: ?][20242501] | [💾][20242501solution] | [💾][20242501tests] | [20240101]: https://adventofcode.com/2024/day/1 [20240102]: https://adventofcode.com/2024/day/1#part2 diff --git a/adventofcode/src/main/java/org/ck/adventofcode/year2024/Day17.java b/adventofcode/src/main/java/org/ck/adventofcode/year2024/Day17.java index ce862eea..02cdf90b 100644 --- a/adventofcode/src/main/java/org/ck/adventofcode/year2024/Day17.java +++ b/adventofcode/src/main/java/org/ck/adventofcode/year2024/Day17.java @@ -1,34 +1,216 @@ package org.ck.adventofcode.year2024; -import java.util.Scanner; +import java.math.BigInteger; +import java.util.*; +import java.util.function.*; +import java.util.stream.Collectors; import org.ck.adventofcode.util.AOCSolution; import org.ck.codechallengelib.annotation.Solution; @Solution( id = 20241701, - name = "Day 17: ?", + name = "Day 17: Chronospatial Computer", url = "https://adventofcode.com/2024/day/17", - category = "2024", - solved = false) + category = "2024") @Solution( id = 20241702, - name = "Day 17: ? - Part 2", + name = "Day 17: Chronospatial Computer - Part 2", url = "https://adventofcode.com/2024/day/17#part2", - category = "2024", - solved = false) + category = "2024") public class Day17 extends AOCSolution { + private static final BigInteger EIGHT = BigInteger.valueOf(8); @Override protected void runPartOne(final Scanner in) { - run(in); + run(in, UnaryOperator.identity(), (output, original) -> true, (output, a) -> output); } @Override protected void runPartTwo(final Scanner in) { - run(in); + run(in, a -> BigInteger.ZERO, String::equals, (output, a) -> a.toString()); } - private void run(final Scanner in) { - print("Whoopsie"); + private void run( + final Scanner in, + final UnaryOperator getActualA, + final BiPredicate shouldBreak, + BiFunction getOutput) { + final BigInteger a = new BigInteger(in.nextLine().split(" ")[2]); + final BigInteger b = new BigInteger(in.nextLine().split(" ")[2]); + final BigInteger c = new BigInteger(in.nextLine().split(" ")[2]); + in.nextLine(); + final String original = in.nextLine().split(" ")[1]; + + Queue possibleAs = new PriorityQueue<>(); + possibleAs.add(getActualA.apply(a)); + + while (!possibleAs.isEmpty()) { + final BigInteger startA = possibleAs.poll(); + for (int i = 0; i < 8; ++i) { + final BigInteger actualA = startA.add(BigInteger.valueOf(i)); + final Computer computer = + new Computer(original.split(","), Map.of("a", actualA, "b", b, "c", c)); + final List output = computer.run(); + final String outputString = + output.stream().map(String::valueOf).collect(Collectors.joining(",")); + + if (shouldBreak.test(outputString, original)) { + print(getOutput.apply(outputString, actualA)); + possibleAs.clear(); + break; + } + + if (original.endsWith(outputString)) { + final BigInteger shift = actualA.multiply(EIGHT); + if (!shift.equals(BigInteger.ZERO)) { + possibleAs.add(shift); + } + } + } + } + } + + private static class Computer { + private final String[] commands; + private final Map registers = new HashMap<>(); + + public Computer(final String[] commands, final Map initialRegisters) { + this.commands = commands; + this.registers.putAll(initialRegisters); + } + + public List run() { + final List output = new ArrayList<>(); + + int p = 0; + while (p < commands.length) { + p += + getCommand(commands[p]) + .applyAsInt(registers, Integer.parseInt(commands[p + 1]), p, output); + } + + return output; + } + + private ToIntQuadFunction getCommand(final String command) { + return switch (command) { + case "0" -> this::adv; + case "1" -> this::bxl; + case "2" -> this::bst; + case "3" -> this::jnz; + case "4" -> this::bxc; + case "5" -> this::out; + case "6" -> this::bdv; + case "7" -> this::cdv; + default -> throw new IllegalStateException("Unexpected command: " + command); + }; + } + + private BigInteger getComboOperand(final Map registers, final int operand) { + if (operand < 4) { + return BigInteger.valueOf(operand); + } + + return switch (operand) { + case 4 -> registers.get("a"); + case 5 -> registers.get("b"); + case 6 -> registers.get("c"); + default -> throw new IllegalStateException("Unexpected value: " + operand); + }; + } + + private int adv( + final Map registers, + final int operand, + final int p, + final List output) { + registers.put( + "a", + registers + .get("a") + .divide(BigInteger.TWO.pow(getComboOperand(registers, operand).intValue()))); + return 2; + } + + public int bxl( + final Map registers, + final int operand, + final int p, + final List output) { + registers.put("b", registers.get("b").xor(BigInteger.valueOf(operand))); + return 2; + } + + public int bst( + final Map registers, + final int operand, + final int p, + final List output) { + registers.put("b", getComboOperand(registers, operand).mod(EIGHT)); + return 2; + } + + public int jnz( + final Map registers, + final int operand, + final int p, + final List output) { + if (!registers.get("a").equals(BigInteger.ZERO)) { + return operand - p; + } + return 2; + } + + public int bxc( + final Map registers, + final int operand, + final int p, + final List output) { + registers.put("b", registers.get("b").xor(registers.get("c"))); + return 2; + } + + public int out( + final Map registers, + final int operand, + final int p, + final List output) { + output.add(getComboOperand(registers, operand).mod(EIGHT).intValue()); + return 2; + } + + public int bdv( + final Map registers, + final int operand, + final int p, + final List output) { + registers.put( + "b", + registers + .get("a") + .divide(BigInteger.TWO.pow(getComboOperand(registers, operand).intValue()))); + return 2; + } + + public int cdv( + final Map registers, + final int operand, + final int p, + final List output) { + registers.put( + "c", + registers + .get("a") + .divide(BigInteger.TWO.pow(getComboOperand(registers, operand).intValue()))); + return 2; + } + } + + private interface ToIntQuadFunction { + int applyAsInt( + final Map registers, + final int operand, + final int p, + final List output); } } diff --git a/adventofcode/src/test/java/org/ck/adventofcode/year2024/Day17Test.java b/adventofcode/src/test/java/org/ck/adventofcode/year2024/Day17Test.java index f47a6994..02567969 100644 --- a/adventofcode/src/test/java/org/ck/adventofcode/year2024/Day17Test.java +++ b/adventofcode/src/test/java/org/ck/adventofcode/year2024/Day17Test.java @@ -1,11 +1,9 @@ package org.ck.adventofcode.year2024; import org.ck.adventofcode.util.BaseAOCTest; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; -@Disabled class Day17Test extends BaseAOCTest { @ParameterizedTest @ValueSource(strings = {"01a"}) diff --git a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01.result.txt b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01.result.txt index e69de29b..bf71a13b 100644 --- a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01.result.txt +++ b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01.result.txt @@ -0,0 +1 @@ +6,2,7,2,3,1,6,0,5 \ No newline at end of file diff --git a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01.txt b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01.txt index e69de29b..ef85247a 100644 --- a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01.txt +++ b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01.txt @@ -0,0 +1 @@ +n7P9BUteMPLNO7lqZkObxw==@ANEJpfXCLUlZ1+blOdGzy962+togNyX8r4j7q/5B6E3oyyJawduTaYTfBKGVaZn0oC7/xx/sD5cIzHq2Vj2NkmAfkIIZ+7KjAdIa4i9qkqdTdl4M2ACe1+NKM2YLDO7y2Hrzv9GgqPnrtA== \ No newline at end of file diff --git a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01a.result.txt b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01a.result.txt index e69de29b..344d83f2 100644 --- a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01a.result.txt +++ b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01a.result.txt @@ -0,0 +1 @@ +4,6,3,5,6,3,5,2,1,0 \ No newline at end of file diff --git a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01a.txt b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01a.txt index e69de29b..36fbf8dc 100644 --- a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01a.txt +++ b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/01a.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/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02.result.txt b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02.result.txt index e69de29b..379ef910 100644 --- a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02.result.txt +++ b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02.result.txt @@ -0,0 +1 @@ +236548287712877 \ No newline at end of file diff --git a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02.txt b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02.txt index e69de29b..ef85247a 100644 --- a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02.txt +++ b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02.txt @@ -0,0 +1 @@ +n7P9BUteMPLNO7lqZkObxw==@ANEJpfXCLUlZ1+blOdGzy962+togNyX8r4j7q/5B6E3oyyJawduTaYTfBKGVaZn0oC7/xx/sD5cIzHq2Vj2NkmAfkIIZ+7KjAdIa4i9qkqdTdl4M2ACe1+NKM2YLDO7y2Hrzv9GgqPnrtA== \ No newline at end of file diff --git a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02a.result.txt b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02a.result.txt index e69de29b..6dae873b 100644 --- a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02a.result.txt +++ b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02a.result.txt @@ -0,0 +1 @@ +117440 \ No newline at end of file diff --git a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02a.txt b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02a.txt index e69de29b..2ed9dda4 100644 --- a/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02a.txt +++ b/adventofcode/src/test/resources/org/ck/adventofcode/year2024/day17/02a.txt @@ -0,0 +1,5 @@ +Register A: 2024 +Register B: 0 +Register C: 0 + +Program: 0,3,5,4,3,0 \ No newline at end of file