From 258baebab8769e37fbf7a925bced30d5d9db74f8 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Mon, 5 Dec 2022 08:04:19 +0100 Subject: [PATCH] day05 --- day05.py | 66 ++++++ inputs/input5 | 511 +++++++++++++++++++++++++++++++++++++++++++ inputs/input5_dennis | 511 +++++++++++++++++++++++++++++++++++++++++++ inputs/input5_test | 9 + 4 files changed, 1097 insertions(+) create mode 100644 day05.py create mode 100644 inputs/input5 create mode 100644 inputs/input5_dennis create mode 100644 inputs/input5_test diff --git a/day05.py b/day05.py new file mode 100644 index 0000000..760877c --- /dev/null +++ b/day05.py @@ -0,0 +1,66 @@ +from tools.aoc import AOCDay +from typing import Any + + +class Day(AOCDay): + inputs = [ + [ + ("CMZ", "input5_test"), + ("VJSFHWGFT", "input5_dennis"), + ("WSFTMRHPP", "input5"), + ], + [ + ("MCD", "input5_test"), + ("LCTQFBVZV", "input5_dennis"), + ("GSLCMFBRP", "input5"), + ] + ] + + def get_stacks_and_moves(self) -> (list, list): + i = self.getInput() + stacks = {} + for l, line in enumerate(i): + if not line: + ret = [] + for k in sorted(stacks.keys()): + ret.append(stacks[k]) + return ret, i[l+1:] + + this_stacks = (len(line) + 1) // 4 + for stack_num in range(this_stacks): + crate = line[stack_num * 4 + 1] + if ord(crate) > 64: + if stack_num not in stacks: + stacks[stack_num] = [] + stacks[stack_num].append(crate) + + def part1(self) -> Any: + stacks, moves = self.get_stacks_and_moves() + for move in moves: + l = move.split(" ") + count, move_from, move_to = map(int, [l[1], l[3], l[5]]) + for _ in range(count): + stacks[move_to - 1].insert(0, stacks[move_from - 1].pop(0)) + + string = "" + for x in stacks: + string += x.pop(0) + return string + + def part2(self) -> Any: + stacks, moves = self.get_stacks_and_moves() + for move in moves: + l = move.split(" ") + count, move_from, move_to = map(int, [l[1], l[3], l[5]]) + stacks[move_to - 1] = stacks[move_from - 1][:count] + stacks[move_to - 1] + stacks[move_from - 1] = stacks[move_from - 1][count:] + + string = "" + for x in stacks: + string += x.pop(0) + return string + + +if __name__ == '__main__': + day = Day(2022, 5) + day.run(verbose=True) diff --git a/inputs/input5 b/inputs/input5 new file mode 100644 index 0000000..19c1e04 --- /dev/null +++ b/inputs/input5 @@ -0,0 +1,511 @@ + [C] [L] [T] + [V] [R] [M] [T] [B] + [F] [G] [H] [Q] [Q] [H] + [W] [L] [P] [V] [M] [V] [F] + [P] [C] [W] [S] [Z] [B] [S] [P] +[G] [R] [M] [B] [F] [J] [S] [Z] [D] +[J] [L] [P] [F] [C] [H] [F] [J] [C] +[Z] [Q] [F] [L] [G] [W] [H] [F] [M] + 1 2 3 4 5 6 7 8 9 + +move 1 from 5 to 6 +move 5 from 6 to 7 +move 10 from 7 to 3 +move 4 from 8 to 4 +move 2 from 5 to 4 +move 4 from 3 to 6 +move 6 from 2 to 4 +move 8 from 6 to 9 +move 5 from 9 to 2 +move 7 from 2 to 7 +move 2 from 1 to 4 +move 3 from 3 to 8 +move 1 from 5 to 9 +move 1 from 3 to 8 +move 1 from 1 to 2 +move 11 from 4 to 6 +move 2 from 5 to 6 +move 10 from 9 to 1 +move 4 from 8 to 3 +move 7 from 7 to 1 +move 9 from 1 to 2 +move 1 from 6 to 5 +move 1 from 5 to 9 +move 5 from 3 to 8 +move 2 from 9 to 1 +move 5 from 3 to 9 +move 3 from 6 to 8 +move 5 from 9 to 6 +move 6 from 6 to 3 +move 3 from 3 to 2 +move 1 from 9 to 8 +move 13 from 2 to 3 +move 3 from 8 to 1 +move 11 from 1 to 4 +move 3 from 4 to 1 +move 2 from 6 to 5 +move 4 from 6 to 8 +move 17 from 3 to 9 +move 1 from 1 to 8 +move 1 from 6 to 5 +move 1 from 3 to 7 +move 1 from 7 to 4 +move 3 from 4 to 1 +move 1 from 3 to 8 +move 4 from 8 to 1 +move 3 from 5 to 9 +move 1 from 6 to 4 +move 4 from 4 to 8 +move 2 from 8 to 4 +move 2 from 1 to 6 +move 4 from 8 to 6 +move 1 from 8 to 3 +move 6 from 6 to 3 +move 6 from 3 to 9 +move 6 from 1 to 4 +move 5 from 8 to 4 +move 1 from 3 to 6 +move 3 from 1 to 7 +move 1 from 6 to 7 +move 4 from 4 to 5 +move 24 from 9 to 5 +move 2 from 9 to 1 +move 27 from 5 to 7 +move 13 from 7 to 2 +move 1 from 5 to 9 +move 7 from 2 to 7 +move 1 from 9 to 8 +move 5 from 2 to 8 +move 1 from 2 to 5 +move 1 from 5 to 7 +move 21 from 4 to 1 +move 1 from 4 to 6 +move 1 from 6 to 5 +move 22 from 7 to 5 +move 2 from 7 to 8 +move 7 from 5 to 4 +move 1 from 4 to 5 +move 2 from 7 to 9 +move 5 from 5 to 2 +move 5 from 4 to 2 +move 3 from 5 to 1 +move 7 from 8 to 7 +move 1 from 4 to 1 +move 23 from 1 to 8 +move 2 from 9 to 4 +move 11 from 8 to 3 +move 3 from 1 to 3 +move 1 from 4 to 2 +move 12 from 3 to 2 +move 7 from 7 to 3 +move 3 from 2 to 1 +move 1 from 4 to 9 +move 1 from 1 to 3 +move 9 from 8 to 6 +move 2 from 5 to 4 +move 3 from 1 to 7 +move 3 from 2 to 4 +move 7 from 2 to 3 +move 9 from 3 to 4 +move 7 from 5 to 2 +move 2 from 7 to 2 +move 1 from 7 to 2 +move 13 from 4 to 6 +move 1 from 9 to 8 +move 2 from 8 to 2 +move 12 from 2 to 1 +move 3 from 3 to 1 +move 1 from 8 to 1 +move 5 from 3 to 7 +move 3 from 2 to 8 +move 7 from 2 to 5 +move 3 from 8 to 3 +move 1 from 4 to 8 +move 22 from 6 to 4 +move 1 from 3 to 6 +move 3 from 5 to 8 +move 4 from 5 to 8 +move 1 from 3 to 9 +move 8 from 4 to 2 +move 8 from 8 to 3 +move 1 from 6 to 3 +move 4 from 2 to 6 +move 1 from 9 to 4 +move 5 from 3 to 9 +move 2 from 8 to 1 +move 3 from 2 to 1 +move 10 from 4 to 8 +move 4 from 7 to 6 +move 10 from 1 to 3 +move 9 from 8 to 2 +move 1 from 7 to 1 +move 15 from 3 to 1 +move 1 from 8 to 9 +move 4 from 4 to 1 +move 17 from 1 to 3 +move 3 from 2 to 3 +move 3 from 6 to 8 +move 5 from 9 to 7 +move 11 from 1 to 8 +move 4 from 7 to 8 +move 6 from 2 to 5 +move 2 from 1 to 4 +move 4 from 6 to 8 +move 16 from 8 to 6 +move 2 from 6 to 1 +move 1 from 9 to 5 +move 1 from 7 to 5 +move 2 from 5 to 6 +move 5 from 6 to 3 +move 2 from 8 to 5 +move 1 from 2 to 1 +move 10 from 6 to 3 +move 6 from 5 to 9 +move 2 from 1 to 2 +move 2 from 4 to 2 +move 1 from 2 to 4 +move 5 from 9 to 2 +move 1 from 4 to 3 +move 1 from 9 to 7 +move 1 from 6 to 1 +move 1 from 1 to 7 +move 2 from 7 to 5 +move 7 from 2 to 5 +move 6 from 5 to 1 +move 1 from 2 to 3 +move 1 from 4 to 1 +move 2 from 8 to 9 +move 8 from 1 to 3 +move 2 from 5 to 3 +move 29 from 3 to 9 +move 5 from 3 to 8 +move 6 from 8 to 5 +move 1 from 6 to 5 +move 6 from 3 to 2 +move 2 from 2 to 4 +move 1 from 1 to 7 +move 18 from 9 to 6 +move 2 from 2 to 9 +move 2 from 2 to 8 +move 13 from 6 to 8 +move 1 from 7 to 4 +move 3 from 5 to 6 +move 1 from 5 to 7 +move 1 from 7 to 4 +move 14 from 9 to 3 +move 3 from 4 to 5 +move 1 from 9 to 7 +move 14 from 3 to 2 +move 1 from 7 to 3 +move 4 from 2 to 5 +move 16 from 8 to 6 +move 11 from 6 to 9 +move 13 from 6 to 4 +move 5 from 5 to 2 +move 12 from 2 to 4 +move 19 from 4 to 3 +move 7 from 4 to 5 +move 14 from 5 to 2 +move 2 from 3 to 6 +move 3 from 9 to 5 +move 2 from 6 to 2 +move 1 from 5 to 2 +move 3 from 5 to 4 +move 3 from 4 to 1 +move 7 from 9 to 6 +move 4 from 6 to 1 +move 1 from 1 to 8 +move 3 from 6 to 9 +move 1 from 8 to 7 +move 1 from 9 to 6 +move 4 from 1 to 2 +move 1 from 7 to 2 +move 2 from 9 to 8 +move 10 from 2 to 9 +move 2 from 2 to 9 +move 11 from 3 to 7 +move 1 from 8 to 9 +move 2 from 3 to 7 +move 1 from 1 to 7 +move 10 from 2 to 4 +move 3 from 4 to 1 +move 4 from 1 to 8 +move 1 from 6 to 5 +move 6 from 7 to 9 +move 3 from 9 to 1 +move 1 from 5 to 1 +move 4 from 4 to 2 +move 5 from 2 to 1 +move 1 from 2 to 7 +move 2 from 7 to 6 +move 1 from 2 to 1 +move 2 from 9 to 1 +move 3 from 4 to 7 +move 1 from 3 to 7 +move 2 from 8 to 3 +move 2 from 6 to 5 +move 2 from 5 to 8 +move 10 from 7 to 2 +move 6 from 9 to 1 +move 1 from 7 to 3 +move 2 from 8 to 9 +move 7 from 3 to 7 +move 7 from 3 to 9 +move 1 from 8 to 9 +move 6 from 2 to 8 +move 13 from 9 to 1 +move 6 from 9 to 8 +move 2 from 2 to 7 +move 3 from 7 to 1 +move 1 from 8 to 1 +move 1 from 1 to 6 +move 16 from 1 to 4 +move 2 from 7 to 5 +move 12 from 4 to 9 +move 4 from 8 to 6 +move 2 from 5 to 1 +move 8 from 8 to 4 +move 2 from 4 to 5 +move 1 from 8 to 6 +move 4 from 6 to 8 +move 19 from 1 to 9 +move 3 from 8 to 5 +move 1 from 6 to 9 +move 2 from 2 to 1 +move 10 from 4 to 9 +move 1 from 1 to 2 +move 2 from 1 to 5 +move 4 from 7 to 9 +move 1 from 8 to 2 +move 1 from 2 to 6 +move 7 from 5 to 4 +move 11 from 9 to 8 +move 1 from 4 to 3 +move 10 from 8 to 1 +move 1 from 2 to 3 +move 29 from 9 to 3 +move 2 from 6 to 5 +move 1 from 5 to 3 +move 5 from 9 to 3 +move 1 from 8 to 9 +move 1 from 9 to 3 +move 6 from 4 to 6 +move 1 from 5 to 1 +move 1 from 6 to 3 +move 2 from 1 to 5 +move 1 from 9 to 5 +move 37 from 3 to 2 +move 3 from 6 to 2 +move 1 from 6 to 2 +move 1 from 6 to 4 +move 3 from 1 to 3 +move 2 from 1 to 6 +move 35 from 2 to 1 +move 1 from 6 to 8 +move 5 from 1 to 8 +move 7 from 1 to 6 +move 5 from 3 to 7 +move 1 from 8 to 7 +move 3 from 7 to 5 +move 4 from 2 to 9 +move 1 from 2 to 1 +move 1 from 4 to 3 +move 3 from 7 to 1 +move 1 from 3 to 6 +move 1 from 1 to 9 +move 5 from 9 to 2 +move 18 from 1 to 3 +move 6 from 1 to 8 +move 6 from 3 to 7 +move 4 from 8 to 6 +move 4 from 6 to 7 +move 9 from 7 to 8 +move 3 from 2 to 7 +move 4 from 6 to 1 +move 3 from 5 to 3 +move 3 from 2 to 5 +move 3 from 6 to 1 +move 4 from 7 to 4 +move 6 from 5 to 9 +move 3 from 1 to 9 +move 1 from 6 to 1 +move 15 from 8 to 2 +move 1 from 8 to 5 +move 3 from 4 to 8 +move 1 from 5 to 1 +move 1 from 6 to 5 +move 11 from 3 to 9 +move 12 from 2 to 3 +move 3 from 8 to 1 +move 15 from 1 to 2 +move 8 from 9 to 4 +move 8 from 4 to 9 +move 4 from 2 to 5 +move 1 from 4 to 6 +move 1 from 2 to 8 +move 1 from 6 to 7 +move 4 from 3 to 1 +move 1 from 8 to 5 +move 5 from 3 to 9 +move 14 from 9 to 2 +move 1 from 7 to 4 +move 4 from 1 to 3 +move 1 from 4 to 7 +move 8 from 3 to 7 +move 8 from 7 to 5 +move 1 from 7 to 9 +move 3 from 3 to 2 +move 7 from 9 to 8 +move 1 from 9 to 5 +move 2 from 8 to 5 +move 7 from 5 to 4 +move 4 from 9 to 2 +move 6 from 4 to 3 +move 18 from 2 to 5 +move 1 from 4 to 7 +move 15 from 5 to 4 +move 1 from 4 to 6 +move 2 from 2 to 7 +move 3 from 8 to 5 +move 1 from 7 to 3 +move 8 from 2 to 6 +move 4 from 2 to 3 +move 1 from 7 to 5 +move 3 from 4 to 6 +move 5 from 6 to 9 +move 8 from 5 to 6 +move 2 from 4 to 3 +move 7 from 4 to 2 +move 2 from 8 to 5 +move 7 from 5 to 6 +move 3 from 5 to 8 +move 1 from 8 to 9 +move 13 from 3 to 8 +move 2 from 2 to 7 +move 9 from 8 to 9 +move 6 from 8 to 5 +move 5 from 5 to 2 +move 2 from 7 to 8 +move 9 from 2 to 5 +move 1 from 7 to 5 +move 1 from 5 to 7 +move 21 from 6 to 2 +move 1 from 7 to 8 +move 3 from 8 to 9 +move 1 from 4 to 2 +move 23 from 2 to 7 +move 8 from 9 to 8 +move 20 from 7 to 4 +move 3 from 7 to 2 +move 1 from 2 to 7 +move 1 from 6 to 7 +move 3 from 5 to 4 +move 8 from 5 to 9 +move 2 from 7 to 1 +move 1 from 8 to 7 +move 4 from 2 to 4 +move 2 from 8 to 7 +move 2 from 8 to 2 +move 1 from 7 to 6 +move 3 from 9 to 7 +move 2 from 2 to 7 +move 5 from 7 to 1 +move 8 from 9 to 6 +move 15 from 4 to 3 +move 4 from 4 to 7 +move 6 from 1 to 4 +move 11 from 3 to 4 +move 8 from 6 to 1 +move 24 from 4 to 7 +move 6 from 1 to 8 +move 27 from 7 to 3 +move 2 from 7 to 8 +move 5 from 8 to 3 +move 4 from 8 to 4 +move 1 from 8 to 6 +move 1 from 6 to 9 +move 1 from 6 to 5 +move 2 from 4 to 2 +move 1 from 8 to 1 +move 1 from 5 to 2 +move 4 from 1 to 6 +move 1 from 7 to 5 +move 1 from 5 to 8 +move 1 from 8 to 7 +move 1 from 7 to 8 +move 1 from 8 to 1 +move 1 from 2 to 3 +move 2 from 4 to 8 +move 7 from 9 to 6 +move 2 from 8 to 1 +move 3 from 3 to 8 +move 3 from 1 to 8 +move 2 from 2 to 3 +move 1 from 4 to 1 +move 1 from 1 to 8 +move 5 from 8 to 3 +move 8 from 6 to 2 +move 1 from 9 to 4 +move 2 from 4 to 8 +move 2 from 8 to 3 +move 2 from 6 to 2 +move 33 from 3 to 2 +move 2 from 8 to 7 +move 1 from 6 to 1 +move 1 from 1 to 7 +move 2 from 3 to 8 +move 2 from 8 to 4 +move 1 from 4 to 8 +move 2 from 7 to 2 +move 2 from 3 to 7 +move 12 from 2 to 1 +move 1 from 8 to 4 +move 1 from 4 to 8 +move 1 from 4 to 3 +move 1 from 8 to 2 +move 3 from 7 to 2 +move 37 from 2 to 7 +move 1 from 1 to 7 +move 12 from 7 to 1 +move 13 from 1 to 7 +move 1 from 3 to 4 +move 35 from 7 to 6 +move 1 from 4 to 5 +move 3 from 7 to 4 +move 1 from 5 to 7 +move 2 from 3 to 4 +move 23 from 6 to 9 +move 3 from 1 to 5 +move 3 from 3 to 7 +move 1 from 3 to 6 +move 2 from 5 to 3 +move 23 from 9 to 8 +move 2 from 4 to 9 +move 16 from 8 to 2 +move 2 from 7 to 3 +move 1 from 5 to 8 +move 3 from 7 to 6 +move 1 from 9 to 8 +move 3 from 8 to 1 +move 1 from 9 to 1 +move 11 from 6 to 5 +move 2 from 4 to 1 +move 4 from 8 to 6 +move 16 from 2 to 3 +move 9 from 1 to 9 +move 1 from 8 to 4 +move 3 from 9 to 3 +move 1 from 1 to 4 +move 1 from 9 to 4 +move 7 from 5 to 2 +move 6 from 2 to 5 +move 1 from 8 to 6 +move 22 from 3 to 7 +move 8 from 5 to 8 +move 4 from 4 to 9 +move 2 from 1 to 8 +move 16 from 7 to 2 +move 1 from 3 to 5 +move 14 from 2 to 7 +move 2 from 2 to 4 +move 6 from 9 to 3 diff --git a/inputs/input5_dennis b/inputs/input5_dennis new file mode 100644 index 0000000..6cc2a83 --- /dev/null +++ b/inputs/input5_dennis @@ -0,0 +1,511 @@ + [C] [B] [H] +[W] [D] [J] [Q] [B] +[P] [F] [Z] [F] [B] [L] +[G] [Z] [N] [P] [J] [S] [V] +[Z] [C] [H] [Z] [G] [T] [Z] [C] +[V] [B] [M] [M] [C] [Q] [C] [G] [H] +[S] [V] [L] [D] [F] [F] [G] [L] [F] +[B] [J] [V] [L] [V] [G] [L] [N] [J] + 1 2 3 4 5 6 7 8 9 + +move 5 from 4 to 7 +move 8 from 5 to 9 +move 6 from 2 to 8 +move 7 from 7 to 9 +move 1 from 7 to 4 +move 2 from 7 to 4 +move 9 from 8 to 4 +move 16 from 9 to 7 +move 1 from 3 to 8 +move 15 from 4 to 5 +move 3 from 9 to 5 +move 2 from 3 to 5 +move 1 from 8 to 7 +move 3 from 1 to 7 +move 5 from 3 to 5 +move 13 from 7 to 2 +move 5 from 7 to 1 +move 7 from 2 to 6 +move 2 from 7 to 8 +move 3 from 6 to 5 +move 2 from 8 to 2 +move 2 from 6 to 1 +move 11 from 1 to 7 +move 2 from 2 to 9 +move 8 from 6 to 5 +move 2 from 9 to 6 +move 3 from 6 to 4 +move 1 from 4 to 7 +move 22 from 5 to 6 +move 13 from 6 to 9 +move 5 from 2 to 7 +move 6 from 5 to 8 +move 13 from 7 to 2 +move 2 from 4 to 6 +move 5 from 6 to 3 +move 2 from 7 to 5 +move 3 from 3 to 6 +move 2 from 6 to 2 +move 8 from 2 to 4 +move 2 from 4 to 7 +move 2 from 2 to 9 +move 5 from 4 to 5 +move 2 from 3 to 2 +move 1 from 5 to 4 +move 6 from 5 to 9 +move 1 from 7 to 3 +move 1 from 5 to 9 +move 5 from 5 to 1 +move 1 from 6 to 8 +move 1 from 5 to 8 +move 4 from 6 to 9 +move 8 from 8 to 9 +move 1 from 3 to 6 +move 4 from 1 to 7 +move 3 from 6 to 4 +move 7 from 2 to 6 +move 27 from 9 to 8 +move 3 from 4 to 7 +move 6 from 8 to 1 +move 1 from 4 to 6 +move 1 from 2 to 7 +move 7 from 6 to 3 +move 1 from 4 to 3 +move 4 from 1 to 6 +move 1 from 9 to 2 +move 1 from 2 to 4 +move 1 from 4 to 5 +move 3 from 9 to 4 +move 5 from 7 to 8 +move 2 from 5 to 6 +move 4 from 6 to 9 +move 10 from 8 to 3 +move 2 from 4 to 7 +move 3 from 1 to 7 +move 2 from 9 to 6 +move 6 from 3 to 1 +move 7 from 3 to 4 +move 2 from 1 to 9 +move 4 from 1 to 9 +move 1 from 3 to 6 +move 1 from 3 to 8 +move 2 from 9 to 5 +move 2 from 5 to 3 +move 3 from 3 to 1 +move 1 from 4 to 6 +move 5 from 7 to 6 +move 2 from 3 to 4 +move 2 from 8 to 1 +move 9 from 4 to 7 +move 4 from 9 to 3 +move 2 from 8 to 3 +move 1 from 1 to 4 +move 1 from 6 to 2 +move 1 from 2 to 9 +move 6 from 3 to 5 +move 2 from 1 to 3 +move 1 from 3 to 2 +move 1 from 2 to 9 +move 8 from 6 to 8 +move 2 from 6 to 3 +move 1 from 1 to 2 +move 7 from 7 to 9 +move 13 from 8 to 6 +move 1 from 2 to 8 +move 6 from 9 to 3 +move 1 from 1 to 6 +move 2 from 8 to 5 +move 5 from 3 to 4 +move 2 from 8 to 1 +move 8 from 5 to 2 +move 4 from 3 to 2 +move 5 from 8 to 4 +move 2 from 9 to 4 +move 4 from 4 to 7 +move 10 from 2 to 6 +move 1 from 2 to 9 +move 24 from 6 to 1 +move 17 from 1 to 8 +move 1 from 9 to 2 +move 2 from 4 to 9 +move 10 from 7 to 4 +move 1 from 2 to 5 +move 5 from 9 to 1 +move 1 from 7 to 6 +move 12 from 8 to 6 +move 1 from 7 to 5 +move 2 from 5 to 6 +move 16 from 6 to 8 +move 12 from 1 to 6 +move 2 from 1 to 7 +move 9 from 6 to 2 +move 2 from 4 to 1 +move 1 from 1 to 5 +move 7 from 4 to 6 +move 13 from 8 to 2 +move 5 from 8 to 2 +move 2 from 7 to 3 +move 2 from 4 to 9 +move 1 from 5 to 4 +move 3 from 9 to 8 +move 2 from 4 to 2 +move 2 from 3 to 8 +move 1 from 1 to 5 +move 1 from 4 to 8 +move 6 from 2 to 7 +move 1 from 5 to 8 +move 1 from 6 to 2 +move 7 from 6 to 8 +move 1 from 6 to 2 +move 24 from 2 to 1 +move 10 from 8 to 3 +move 4 from 8 to 2 +move 4 from 7 to 1 +move 5 from 2 to 9 +move 1 from 6 to 2 +move 10 from 3 to 1 +move 2 from 7 to 3 +move 2 from 3 to 7 +move 2 from 7 to 9 +move 35 from 1 to 5 +move 28 from 5 to 6 +move 2 from 2 to 7 +move 19 from 6 to 4 +move 3 from 1 to 2 +move 3 from 2 to 5 +move 23 from 4 to 7 +move 2 from 6 to 8 +move 4 from 7 to 6 +move 3 from 5 to 6 +move 13 from 7 to 4 +move 2 from 5 to 6 +move 2 from 9 to 4 +move 5 from 6 to 3 +move 6 from 4 to 5 +move 1 from 4 to 8 +move 4 from 4 to 6 +move 5 from 9 to 7 +move 2 from 8 to 7 +move 5 from 3 to 2 +move 4 from 5 to 2 +move 5 from 2 to 9 +move 4 from 8 to 4 +move 1 from 9 to 8 +move 2 from 2 to 6 +move 4 from 4 to 2 +move 3 from 2 to 3 +move 3 from 5 to 1 +move 2 from 3 to 2 +move 3 from 1 to 4 +move 1 from 9 to 4 +move 5 from 4 to 9 +move 2 from 4 to 3 +move 5 from 6 to 8 +move 1 from 9 to 7 +move 2 from 6 to 3 +move 1 from 4 to 5 +move 1 from 9 to 4 +move 6 from 8 to 6 +move 2 from 3 to 6 +move 2 from 9 to 4 +move 2 from 3 to 9 +move 1 from 3 to 1 +move 17 from 6 to 4 +move 1 from 1 to 8 +move 1 from 6 to 5 +move 1 from 9 to 2 +move 11 from 4 to 6 +move 9 from 4 to 5 +move 7 from 9 to 4 +move 2 from 5 to 2 +move 1 from 4 to 9 +move 5 from 2 to 1 +move 1 from 2 to 9 +move 4 from 4 to 9 +move 4 from 1 to 5 +move 1 from 1 to 7 +move 1 from 8 to 9 +move 8 from 7 to 8 +move 4 from 7 to 4 +move 9 from 5 to 2 +move 2 from 4 to 1 +move 11 from 6 to 8 +move 2 from 4 to 3 +move 2 from 4 to 8 +move 1 from 1 to 4 +move 3 from 2 to 8 +move 1 from 1 to 3 +move 3 from 3 to 9 +move 8 from 9 to 6 +move 1 from 4 to 8 +move 2 from 9 to 3 +move 5 from 6 to 9 +move 7 from 5 to 6 +move 2 from 3 to 4 +move 5 from 7 to 9 +move 2 from 4 to 5 +move 2 from 2 to 3 +move 10 from 9 to 5 +move 2 from 6 to 3 +move 6 from 2 to 7 +move 10 from 5 to 3 +move 6 from 7 to 1 +move 2 from 1 to 7 +move 4 from 3 to 9 +move 3 from 8 to 2 +move 2 from 7 to 5 +move 19 from 8 to 7 +move 4 from 5 to 9 +move 4 from 9 to 8 +move 1 from 2 to 5 +move 3 from 6 to 8 +move 1 from 5 to 9 +move 5 from 9 to 7 +move 6 from 3 to 8 +move 1 from 3 to 8 +move 2 from 3 to 2 +move 23 from 7 to 6 +move 10 from 8 to 4 +move 4 from 4 to 9 +move 4 from 2 to 6 +move 1 from 3 to 8 +move 4 from 8 to 4 +move 31 from 6 to 4 +move 9 from 4 to 5 +move 8 from 5 to 3 +move 1 from 6 to 7 +move 2 from 5 to 7 +move 4 from 9 to 2 +move 21 from 4 to 8 +move 4 from 2 to 9 +move 3 from 3 to 9 +move 2 from 7 to 9 +move 11 from 4 to 9 +move 1 from 8 to 5 +move 1 from 5 to 9 +move 9 from 9 to 3 +move 3 from 1 to 5 +move 2 from 5 to 8 +move 11 from 3 to 6 +move 4 from 6 to 3 +move 2 from 8 to 3 +move 10 from 9 to 6 +move 22 from 8 to 9 +move 1 from 1 to 8 +move 4 from 6 to 3 +move 2 from 7 to 6 +move 3 from 8 to 3 +move 14 from 3 to 2 +move 1 from 3 to 4 +move 1 from 2 to 4 +move 2 from 9 to 1 +move 1 from 5 to 7 +move 1 from 3 to 2 +move 14 from 6 to 5 +move 13 from 5 to 2 +move 1 from 5 to 6 +move 1 from 7 to 9 +move 8 from 9 to 4 +move 2 from 6 to 7 +move 23 from 2 to 4 +move 2 from 1 to 4 +move 2 from 2 to 5 +move 1 from 5 to 1 +move 1 from 7 to 2 +move 1 from 5 to 9 +move 16 from 9 to 5 +move 1 from 2 to 4 +move 13 from 5 to 3 +move 1 from 1 to 4 +move 1 from 7 to 1 +move 1 from 5 to 3 +move 2 from 5 to 7 +move 2 from 7 to 1 +move 9 from 3 to 2 +move 2 from 1 to 7 +move 1 from 1 to 9 +move 19 from 4 to 2 +move 1 from 9 to 7 +move 1 from 7 to 8 +move 23 from 2 to 8 +move 2 from 7 to 2 +move 12 from 4 to 5 +move 12 from 5 to 1 +move 5 from 2 to 9 +move 2 from 2 to 7 +move 5 from 8 to 1 +move 3 from 9 to 4 +move 1 from 2 to 8 +move 1 from 2 to 4 +move 4 from 8 to 1 +move 2 from 3 to 1 +move 2 from 7 to 5 +move 1 from 4 to 9 +move 8 from 4 to 7 +move 13 from 8 to 6 +move 1 from 3 to 1 +move 13 from 6 to 7 +move 13 from 7 to 6 +move 7 from 1 to 4 +move 5 from 7 to 3 +move 3 from 4 to 3 +move 13 from 6 to 1 +move 3 from 8 to 6 +move 8 from 3 to 8 +move 12 from 1 to 8 +move 1 from 3 to 5 +move 6 from 1 to 7 +move 3 from 6 to 8 +move 1 from 3 to 8 +move 1 from 9 to 2 +move 3 from 5 to 6 +move 1 from 7 to 3 +move 8 from 7 to 1 +move 2 from 6 to 2 +move 3 from 4 to 3 +move 2 from 9 to 2 +move 6 from 8 to 9 +move 5 from 2 to 5 +move 2 from 3 to 4 +move 5 from 5 to 4 +move 1 from 3 to 9 +move 8 from 4 to 5 +move 1 from 6 to 8 +move 2 from 1 to 4 +move 1 from 1 to 4 +move 3 from 1 to 5 +move 3 from 1 to 6 +move 7 from 1 to 9 +move 2 from 6 to 9 +move 1 from 3 to 5 +move 17 from 8 to 7 +move 17 from 7 to 6 +move 5 from 5 to 2 +move 5 from 2 to 1 +move 13 from 6 to 2 +move 1 from 1 to 4 +move 5 from 5 to 1 +move 1 from 1 to 5 +move 10 from 9 to 1 +move 13 from 1 to 8 +move 13 from 8 to 4 +move 5 from 6 to 7 +move 8 from 1 to 7 +move 1 from 1 to 3 +move 12 from 2 to 6 +move 1 from 3 to 8 +move 6 from 6 to 2 +move 2 from 5 to 1 +move 5 from 2 to 5 +move 2 from 5 to 9 +move 12 from 4 to 2 +move 1 from 6 to 2 +move 15 from 2 to 1 +move 1 from 8 to 6 +move 2 from 7 to 3 +move 2 from 4 to 2 +move 1 from 2 to 9 +move 1 from 2 to 6 +move 7 from 7 to 3 +move 1 from 4 to 1 +move 17 from 1 to 2 +move 3 from 6 to 4 +move 1 from 3 to 8 +move 3 from 9 to 6 +move 4 from 6 to 3 +move 13 from 2 to 9 +move 3 from 2 to 8 +move 2 from 5 to 1 +move 6 from 8 to 2 +move 1 from 6 to 2 +move 3 from 2 to 7 +move 3 from 1 to 6 +move 2 from 9 to 8 +move 6 from 9 to 8 +move 8 from 9 to 3 +move 7 from 7 to 4 +move 20 from 3 to 7 +move 4 from 6 to 8 +move 1 from 8 to 6 +move 2 from 6 to 4 +move 3 from 2 to 1 +move 2 from 9 to 6 +move 9 from 8 to 6 +move 3 from 1 to 9 +move 9 from 4 to 8 +move 1 from 5 to 6 +move 3 from 4 to 2 +move 1 from 5 to 3 +move 8 from 6 to 4 +move 4 from 9 to 3 +move 10 from 8 to 6 +move 5 from 2 to 3 +move 3 from 6 to 4 +move 10 from 3 to 1 +move 11 from 4 to 1 +move 1 from 8 to 2 +move 2 from 4 to 2 +move 1 from 4 to 9 +move 10 from 6 to 3 +move 21 from 1 to 5 +move 2 from 2 to 7 +move 1 from 9 to 6 +move 1 from 6 to 3 +move 1 from 6 to 7 +move 11 from 5 to 6 +move 1 from 2 to 8 +move 1 from 5 to 9 +move 11 from 6 to 3 +move 1 from 8 to 4 +move 1 from 4 to 1 +move 3 from 5 to 7 +move 1 from 1 to 5 +move 5 from 5 to 8 +move 23 from 7 to 9 +move 5 from 8 to 4 +move 1 from 5 to 2 +move 12 from 3 to 4 +move 6 from 3 to 6 +move 1 from 5 to 2 +move 8 from 9 to 2 +move 1 from 7 to 8 +move 2 from 7 to 9 +move 4 from 3 to 5 +move 1 from 5 to 9 +move 1 from 6 to 5 +move 4 from 6 to 5 +move 3 from 2 to 1 +move 3 from 1 to 3 +move 8 from 9 to 1 +move 4 from 2 to 9 +move 1 from 9 to 7 +move 14 from 4 to 8 +move 3 from 3 to 4 +move 1 from 5 to 8 +move 2 from 8 to 6 +move 2 from 6 to 7 +move 4 from 4 to 3 +move 12 from 9 to 1 +move 1 from 3 to 2 +move 6 from 8 to 2 +move 1 from 7 to 1 +move 5 from 2 to 3 +move 21 from 1 to 3 +move 5 from 5 to 4 +move 1 from 8 to 5 +move 2 from 2 to 7 +move 1 from 6 to 1 +move 2 from 9 to 2 +move 1 from 2 to 9 +move 1 from 1 to 5 +move 4 from 3 to 5 +move 7 from 8 to 1 +move 6 from 1 to 9 +move 1 from 2 to 5 +move 6 from 9 to 7 +move 8 from 3 to 4 +move 2 from 4 to 8 +move 1 from 1 to 6 +move 10 from 3 to 9 +move 12 from 4 to 2 +move 1 from 8 to 1 \ No newline at end of file diff --git a/inputs/input5_test b/inputs/input5_test new file mode 100644 index 0000000..c526f15 --- /dev/null +++ b/inputs/input5_test @@ -0,0 +1,9 @@ + [D] +[N] [C] +[Z] [M] [P] + 1 2 3 + +move 1 from 2 to 1 +move 3 from 1 to 3 +move 2 from 2 to 1 +move 1 from 1 to 2 \ No newline at end of file