diff options
-rw-r--r-- | 2022/02/input | 2500 | ||||
-rw-r--r-- | 2022/02/solve.py | 40 |
2 files changed, 2540 insertions, 0 deletions
diff --git a/2022/02/input b/2022/02/input new file mode 100644 index 0000000..9d27e74 --- /dev/null +++ b/2022/02/input @@ -0,0 +1,2500 @@ +B Y +A X +C Z +A Z +B Y +B Y +A X +C Z +B Y +B Y +C Z +C X +B Y +C Z +B Y +C Z +A Z +A Z +A X +B Y +A X +C Z +C Y +C Z +C Z +C Z +A X +A X +B Y +A Z +B Z +B Y +A X +A X +C Z +B Y +B Y +B Z +A Z +A X +C Z +B Z +A Z +C Z +C Z +C Z +C Z +C Z +C Z +B X +A Z +A Z +C Z +C Z +C Z +A Y +C Z +B Y +C Z +C Z +C Z +B Y +B Z +A X +A X +C Z +B Y +B Y +B Z +A X +A X +C Z +B Y +C Z +A X +C Z +A X +C X +A Y +A Y +B Y +A Y +C Z +B Y +C Z +C Z +A X +C Z +A Z +C Z +A X +C Z +B Y +B Y +C Z +B Z +C Y +C Z +B Y +C Z +C Z +B X +A X +C Z +C Z +B Y +C Z +B Y +A Z +B Y +B Z +A Z +C Z +C Z +C Z +A Z +C Z +A X +A X +A Z +C Z +A X +A Z +C Z +A Z +A Y +B Y +A Z +B X +A X +C Z +C Z +B Y +C Y +B Y +B Z +B Y +B Y +C Z +C Z +C Z +C Z +A Y +C Z +B Z +A X +B Y +A Y +C Z +C Z +C Z +C Z +C Z +B Y +C Z +B Y +C Z +B Y +C Z +C X +A Y +A X +C Y +B Y +A Z +C Z +C Z +B Y +B Y +A X +B Y +A Y +A X +A X +B Y +A X +A X +B Y +C Z +C Z +B Y +C Z +A Z +C Z +B Z +C Z +A Y +C Z +B Z +C Z +A Y +A Y +C Z +A X +B Y +C Z +A X +B Y +B Y +A X +A X +C Z +B Y +C Z +B Z +C Z +A X +C Z +B Y +B Y +A X +B Z +C Z +B Z +B Y +B Y +A Y +B Z +A Z +C Z +C Z +A X +A X +A X +C Z +B Y +A X +A Y +C Z +A X +B Y +A Y +A Y +C Z +C Z +C Z +A Z +B Z +C Z +B Y +C Z +C Z +A Y +A X +C Z +B Y +C Z +C Z +B Y +B Y +A Y +C Z +B Y +B Y +A Z +C Z +C Z +C Z +C Z +B Z +C Z +B Y +A X +C Z +B Z +A Z +A X +C Z +A X +A X +B Y +C Z +C Z +A X +C Z +A Y +C Z +C Z +A X +B Y +C Z +B Z +B Y +C Z +A Z +C Z +C Z +A Y +A Z +C Z +C Z +B Z +C Z +B Y +C Z +C Z +A X +C Z +C Z +B Z +C Z +B Z +A X +B Y +C Z +C Z +C Z +C Z +C Z +A Z +A Y +A X +A X +C Z +B X +A Z +A X +C Z +B Z +C Z +B Y +A Z +C Z +B Y +C Z +C Y +A Y +C Z +B Y +B Y +C Z +A X +C Z +A X +C X +A X +B X +A X +C Z +C Z +C Z +B Y +B Y +C Z +B Z +C Z +B Y +A X +C X +C Z +B Y +A Z +A X +B Y +B Y +C Z +C Z +C Z +B Y +A X +A X +B Y +A X +A Y +C Z +B Y +A X +A Y +B Y +A X +A X +C Z +C Z +C Z +C Z +C Z +A X +A X +B Z +A Y +C Z +A X +C Z +B Y +C Z +A Z +C Z +C Z +A Y +B Z +C Z +A X +B Y +B Y +C Z +A Y +C Z +C Z +C Z +C Z +C Z +B Y +A X +A X +B Y +C Z +C Z +A Z +C Z +C Z +C Z +A Y +B Z +B Y +B Y +C Z +A X +A Y +C Z +A X +A Y +A X +C Z +A Y +B Z +B Y +B Z +C Z +C Z +C Z +B Z +B Z +C Z +C Z +C Z +C Z +B Y +B Z +A Y +A Y +B Z +B X +A Z +A X +C Z +A X +A Y +A X +A X +A X +C Z +C Z +C Z +A X +C Z +C Z +B Y +A X +C Z +A X +A Y +A X +C Z +A Y +C Z +B Y +A X +A Y +A Z +C Z +B Y +B Y +B Z +A X +A X +B Y +C Z +A X +B Y +C Z +C Z +C Z +A X +A Y +A Z +C Z +B Y +C Z +A X +A Z +A Z +B Y +B Y +A X +B Y +C Z +B Z +C Z +B Y +A Z +C Z +A Y +A X +A Z +B Y +A X +A Z +C Z +A Z +C Z +C Z +A X +C Z +A X +C Z +A X +C Z +B Y +C Z +A X +B Y +A Y +C X +A Y +A Z +A X +A Z +B Y +A X +C Z +A Y +B Y +B Y +C Z +B Y +C Z +B Y +B Z +C Z +C Z +B Y +A X +C Z +B Y +C Z +C Z +C Z +C Z +C Z +A X +A X +A Z +A Z +C Z +A Y +B Y +A Y +A Y +B Y +C X +A Y +C Z +C Z +C Z +A Y +A Y +A Y +C Z +A X +B Y +A X +B X +A Y +A Y +A X +B Z +B Y +C Z +B Y +C Z +B Y +C Z +A Z +C Z +A X +B Y +A X +C Z +B Z +C Z +B Y +C Z +C Z +C Z +A X +A X +B Y +B Z +A Z +A X +A X +C Z +A X +A X +C X +C X +C Z +B Y +B Z +C Z +A X +B Y +B Y +A Z +C Z +C Y +A X +B Y +B Y +C Y +A X +A X +A X +A X +A Z +B Y +A Z +C Z +C Z +B Y +B Z +B Y +A Y +C Z +C Z +B Y +A Y +C Z +A X +C Z +C Z +A X +B Y +C Z +C Z +A X +A Z +C Z +A Z +C Z +B Z +A X +A Y +B Y +A X +A Y +A Z +A Y +A X +A Y +C Z +A X +C Z +C Z +A X +A Y +A X +C Z +A Z +C Z +C Z +C Z +A X +B Y +A X +C Z +C Z +C Z +C Z +A X +C Z +C Z +B Y +A Y +A X +A X +C Z +C Z +A X +C Z +C Z +B Y +C Z +A X +C Z +C Z +A Y +A X +C Z +A Y +C Z +A X +B Z +B Y +A X +B Y +C Z +A X +C Z +C Z +A X +C Z +B X +C Z +C Z +A Y +C Z +A Y +B X +C Z +B Y +C Z +A Z +C Z +A X +C Z +C Z +C Z +C Z +A X +B X +C Z +C Z +B Y +A Z +A Y +C Z +A X +A Z +A X +A X +B Y +A X +C Z +A X +A X +B Y +A X +B Z +C Z +A Z +A Y +A X +B Y +A X +A Z +A X +B Y +B Z +B Y +C Z +B Y +A X +A Y +C Z +A X +B Z +C Z +C Z +A X +A X +A Y +C Z +C Z +C Z +A Y +B Y +A X +C Z +B Y +B Y +A X +A X +B Y +C Z +B Y +A X +A Z +C Z +C Z +C Z +C Z +B Z +C Z +A Z +C Z +A Y +B Y +A Y +C X +C Z +C Z +A Y +A X +B Y +C Z +A X +C Z +A X +A Y +A Y +B Z +C Y +B Y +C Z +B Y +A X +C Z +C Z +C Z +C Z +B Y +A X +B Y +A Y +C Z +B Y +A Z +B Z +C Z +C Z +C Z +C Z +A Y +A X +C Z +A X +C Z +C Z +C Z +C Z +C Z +B X +C Z +B Z +A X +A X +A Y +A X +A Z +B Y +A Y +C Z +C Z +C Z +C Z +C X +A Y +C Z +C Z +B Y +A X +C Y +B Y +C Z +C Z +C Z +B X +A X +C Z +A X +C Z +C Z +C Z +C Y +A X +C Z +A Z +C Z +C Z +B Y +A X +A X +A Z +A Y +C Z +C Z +C Z +C Z +C Z +C Z +C Z +B Y +A Y +A X +C Z +C Z +A X +A X +C Z +C Z +B Y +A X +A X +C Z +C Z +C Z +B Y +A Y +B Z +A Y +C Z +A X +C Z +C Z +B Y +A Y +A X +B Z +A X +C Z +C Z +C Z +C Z +B Z +C Z +B Y +C Z +C Z +C Z +B Y +C Z +C Y +B Z +B Z +A Y +C Z +C Z +B Z +B Y +C Z +B Y +C Z +C Z +B Y +C Z +C Z +C Z +A Y +A X +B Y +C Z +C Z +C Z +B Y +C Z +A Y +A X +A Z +A Y +C Z +C Z +C Z +B Z +C Z +B Y +C Z +B Y +A Y +C Z +C Z +A Z +B Y +A X +A X +B Z +A X +C Z +C Z +C Z +A X +B Z +C Z +A X +C Z +C Z +C Z +C Z +C Z +C Z +A Y +C Z +A Z +A X +B Y +C Z +C Z +A X +A Y +C Z +B Y +A X +C Z +C Z +A X +A Y +A X +B Z +C Z +A X +C Z +A X +A Z +B Y +C Z +C Z +C X +B Z +B X +B Y +A Z +C Z +A X +B Z +A X +B Y +C Z +B Z +A Z +A Z +C Z +C Z +C Z +C Z +B Y +B Y +A Y +A X +A X +B Y +A Z +A X +C Z +B Z +A X +A X +B Y +A X +C Z +A X +C Z +C Z +C Z +C Z +A X +A X +A Z +C Z +A X +B Z +C Z +B Y +C Z +C Z +A Y +C Z +B Z +C Z +C Z +B Y +C Z +C Z +B Y +A X +A X +C Z +C Z +C Z +A X +C Z +C Z +B Y +C Z +B Z +C Z +A X +C Z +A X +C Z +A Y +C Z +C Z +A X +B Y +C Z +C Z +C Z +A X +B Y +C Z +A X +B Z +A X +B Z +C Z +A X +C Z +B Y +A Z +B X +A Y +C Z +C Z +B X +A Y +A X +C Z +A X +C Z +B X +A X +B Y +A Z +A X +C Z +A Y +C Z +A X +C Z +C Z +C Z +C Z +A Z +C Z +C Z +B Y +A X +B Y +C Z +B Y +A X +C Z +C Z +A X +A X +B Y +C Z +B Y +C Z +C Z +A Z +C Z +C Z +C Z +A Y +A Z +C Z +C Z +C Z +C Z +A X +C Z +A X +A X +B Z +C Z +C Z +C Z +B Z +A X +C Z +A Y +B Y +C Z +A Y +C Z +C Z +A X +A X +B Y +A Z +A Y +A X +B X +B Y +B Z +B Y +A X +C Z +C Z +B Z +B Z +B Z +C Z +C Z +B Y +B Y +B Y +C Z +B Y +A X +A Z +B Z +A X +B Z +A X +C Z +B Y +B X +A X +C Z +A X +C Z +C Z +C Z +B X +B Y +A Y +A X +A X +A Y +C Z +C Z +B Y +C Z +B Z +A X +C Z +C Z +C Z +A X +A Y +C Z +B Z +A X +A Y +A Z +C Z +B Y +B Z +A X +C Z +A X +A X +A Z +C Z +C Z +B Y +A X +C Z +A Y +A Z +A X +A X +C Z +A Y +B Y +C Z +A Z +C Z +B Y +A X +A X +A X +C Y +C Z +A Y +B Z +C X +A X +A X +A X +A X +B Z +B Y +C Z +B Y +A X +B Y +C Z +B Y +C Z +C Z +A X +B Y +A Y +B X +A X +B X +C Z +A Z +A X +B Y +B Y +C Z +A X +A X +B Y +C Z +A X +C Z +A X +A Z +A Z +C Z +A Z +C Z +C Z +C Z +C Z +A Z +C Y +C Z +C Z +A Z +A Y +A X +B Z +C Z +C Z +C Z +A Y +C Z +C Z +C Z +C Z +A Z +B Z +A X +C Z +C Z +A Y +B Y +A X +C Z +A X +B Y +A X +A X +A Z +B Y +C Z +B X +C X +A X +A X +A X +C Z +C Z +A X +B Y +A Z +B Y +A X +A Y +C Z +B Y +C Z +B Y +A Y +B Y +A Y +A X +C Z +C Z +A X +B Y +A X +C Z +C Z +A Y +B Y +B Y +A Z +B Y +C Z +C Z +C Z +B Y +A X +B Y +A X +C Z +C Z +C Z +A X +C Z +C Z +B Y +C Z +B Z +B Y +A X +B Y +A Z +B Y +A X +B X +C Z +A Z +B Y +C Z +B Y +C Z +C Z +C Z +C Z +B X +A X +B Y +B Y +A X +C Z +A X +B Z +B Z +B Z +A X +C X +A X +A X +A X +B Y +B Y +C Z +C Z +A X +C Z +B Y +A X +C Z +A X +C Z +A X +B Y +C Z +C Z +A Y +B Y +C Z +A Z +C Z +A X +C Z +C Z +A Z +A Y +C Z +A X +B Y +B Z +C Z +A Y +A Y +C Z +C Z +B Z +A Z +C Z +A X +C Z +A X +C Z +C Z +C Z +B Y +C Y +B Y +A Y +A X +C Z +B Y +C Z +C Z +C Z +A Z +C X +A Y +C Z +A Y +A Y +C Z +A Z +C Z +C Z +C Z +C Z +C Z +B Y +A Y +B Y +A Z +B Y +A X +A X +B Y +A Z +B Y +C Z +B Z +A X +C Z +A Y +A Y +C Z +A X +A X +C Z +C Z +C Z +B Y +A X +C Z +B Y +C Z +B X +C Z +A Y +C Z +A X +C Z +A X +C Z +C Z +B Y +C Z +B Z +C Z +A Y +A X +A Z +C Z +C Z +C Z +C Z +C Z +A Z +B Y +B Y +B Y +C Z +C Z +C X +C Z +A X +B Y +C Z +C Z +A X +B Y +C Z +C Z +C Z +C Z +C Z +C Z +A X +B Z +C Z +C Z +C Z +A X +B Z +C Z +A X +C Z +A Y +B Y +C Z +B Z +B Y +C Z +B X +C Z +B Y +B Y +B Y +A X +A X +C Z +A Z +C Z +B Y +B Z +C Z +C Z +B Z +B Y +A Z +B Y +A X +A X +C Z +C Z +C Z +B Y +A X +C Z +C Z +A Y +C Z +B Y +C Z +C Z +C Z +C Z +C Z +C Z +B Y +B Y +C Z +A Z +A X +B Y +C Z +B Y +A X +A Z +C Z +B Y +A Z +C Z +B Y +A Z +A X +B Z +A X +C Z +B Y +C Z +A Y +C Y +A X +A Y +C Z +C Z +B Y +C Z +B Y +A Z +C Z +C Z +A X +C Z +B Z +A Y +B Z +A Z +A X +B Y +A Z +A Y +C Z +C Z +B Y +A X +B Y +C Z +A X +B Y +B Y +C Z +A Z +A X +C Z +B X +C Z +C Z +C Z +C Y +A Z +A X +C Z +C Z +A X +B Y +C Z +B Y +C Z +B Z +A Z +C Z +B Y +A X +C Z +C Z +B Z +C Z +A Z +B Y +B Z +C Z +C Z +A X +C Y +B Y +C Z +A X +C Z +C Z +B Y +B Z +C Z +C Z +A Y +A X +C Z +A X +B Z +B Y +A Z +B Z +C X +A X +C Z +C Z +C Z +A X +B Z +C Z +C Z +C Z +B Y +C Z +A X +C Z +C Z +B Y +C Z +A X +C Z +C Z +C Z +A X +A X +B Y +C Z +C Z +B Y +B Z +B Y +C Z +A X +A X +B Y +A X +B Y +C Z +A X +C Z +C Z +B Z +A X +B Y +C Z +C Z +C Z +C Z +A Z +C Z +A X +B Y +A Y +A Y +C Z +C Z +C Z +B Y +A Z +A X +B Y +C Z +A X +C Z +A X +C Z +A X +C Z +C Z +B Y +A Y +C Z +B Y +B Y +A X +C Z +A Y +A Z +C Z +C Z +C Z +A Y +B Y +C Z +C Z +B Z +C Z +B Z +B Y +A X +A X +C Z +B Z +C Z +C Z +A X +A X +B Z +A X +C Z +C Z +B Y +A X +C Z +A X +B Y +C X +A Z +B Y +C Z +A X +B Y +C Z +A X +B Y +C Z +B X +C Z +A Y +C Z +A X +C X +B Z +C Z +B Y +B Y +B Y +A Y +A X +C Z +C Z +A Y +B Y +A X +C Z +A X +C Z +C Z +A X +C Z +A X +C Z +B Y +C Z +A X +A Z +C X +B Y +C Z +C Z +B Z +A X +A X +B Y +C Z +A Y +B Y +C Z +A X +A Z +A X +B Y +A X +B Y +C Z +C Z +B Y +A X +B Y +B Z +C Z +B Z +A X +C Z +C Z +A Y +C Z +A X +C Z +B Y +C Z +C Z +C Y +C Z +C Z +A Y +C Z +C Z +A Z +A X +B Z +C Z +A Y +A X +B Z +C Z +C Z +B Y +B Z +A X +A X +C Z +B Y +A Y +C Z +A Z +A X +C Z +A X +C Z +C Z +A Z +C Z +C Z +C Z +A Y +B Y +A X +B Z +B Y +C Z +C Z +C Z +C Z +C Z +C Z +C Z +A Z +B Z +B X +A X +A Z +A X +A X +B Y +C Z +C Z +A X +B Y +A Y +C Z +B Z +C Z +A X +B Y +C Z +B Y +A Z +C Z +A Y +C Z +A X +C Z +A Z +B Y +A Y +A X +A X +A Z +C Z +C Z +C Y +C Z +A Y +A X +B Y +A Z +B Z +B Z +C Z +C Z +C Z +C Z +A X +A Y +B Y +C Z +B Y +C Z +A X +B Y +C Z +C Z +A Z +A X +B Y +C Z +A Y +C Z +C Z +C Z +A X +B Y +A X +B Y +C Z +C Z +B Y +C Z +A X +A X +C Z +B Y +B Z +A X +A X +A X +C Z +C Z +B Y +A X +C Z +A X +A Z +C Z +C Z +C Z +C Z +A Z +A X +B X +B Z +A Y +C Z +C Y +B Y +C Z +A Y +A X +B Z +B Y +C Z +B Y +C Z +A X +A Z +A X +C Z +B Y +B Y +B Y +A Z +C Z +C Z +B Y +C Z +B Y +A X +B Y +A X +B Y +C Z +C Z +B Y +A X +A Y +B Z +C Z +C Z +A X +B Y +A X +A X +A Y +B X +A X +A X +C Z +B Z +A X +C Z +A Y +A Z +C Z +A Z +A X +B Y +A X +C X +C Z +B Y +C Z +A X +A X +C Z +A X +B Y +A X +C Z +B Z +C Z +A X +C X +C Z +C Z +A X +C Z +A Y +C Z +A X +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B Y +A Y +A Z +B Y +C Z +C Z +B Y +A Z +A X +A Y +A X +C Z +A Y +A Z +A Y +B Y +C Z +C Z +A Y +C Z +A X +B Y +C Z +A X +C Z +A X +B Y +C Z +C Z +A Z +A X +C Z +B Y +A Z +C Z +A X +C Z +B Y +B Y +C Z +C Z +C Z +C Z +B Z +C Z +C Z +C Z +C Z +C Z +B Y +B Y +A X +C Z +C Z +A Z +C Z +A X +C Z +C Z +A X +B Y +A X +C Z +B Y +B Y +A Y +A Y +A X +A Y +A Y +C Z +C Z +A Y +C Z +A Y +B Y +C Z +C Z +C Z +B Y +B Y +B Y +A X +C Z +B Y +C Z +C Z +C Z +C Z +A X +B Y +A X +C Z +A X +C Y +A Y +B Y +C Z +C Z +C Z +C Z +B Y +C Z +C Z +B Y +C Z +A X +A X +B Y +B X +C Z +B Y +A X +B Z +A Z +C Z +C Z +C Z +C Z +B Y +A Z +C Z +C Z +C Z +C Z +A X +A X +B Y +A Z +C Z +C Z +C Z +C Z +A Z +B Y +A X +B Y +C Z +C Z +B Z +C Z +A Y +C Z +A Y +B Y +C Z +A X +C Z +A X +B Z +B Y +B Y +A X +B X +A X +C Z +B Y +A X +A Z +C Z +C Z +A Z +C Z +C Z +B Y +C Y +C Z +A Z +A Z +C Z +B X +C Z +C Z +B Y +C Z +B Y +B Y +A X +A Y +B Y +A X +B Z +C Z +A Z +A X +A X +A Z +A Z +B Z +A X +B Y +C Z +B Y +A X +C Z +B Z +A Y +B Z +C Z +A X +B Z +A X +A Y +C Z +C Z +C Z +C Z +C Z +A Y +A Y +A X +B Y +C Z +A X +B Y +A X +B Y +C Z +A Z +C Z +C Z +C Z +C Z +C Z +B Y +B Z +C Z +A X +A Z +A X +A X +C Z +C Z +C Z +C Z +B Y +C Z +A X +C Z +C Z +C Z +C Z +C Z +B Y +A Z +A X +A Z +C Z +C Z +C Z +C Z +B X +C Z +C Z +A X +C Z +A Z +B Z +B Y +B Z +A Y +B Y +B Y +C Z +A Y +A Y +A Y +C Z +C Z +B Z +A X +C Z +A X +A X +A X +C Z +C Z +A Z +A X +A Y +C Z +C Z +A X +B Z +C Z +A X +C Z +A Z +A X +C Z +C Z +A X +A Z +B Y +A X +B Y +C Z +C Z +A X +B Z +C Z +B Y +C Z +A Z +C Z +A X +B Y +C Z +C Z +A Y +C X +A Y +A Y +C Z +C Z +A X +A Z +B Y +C Z +B Y +C Z +A Y +C Z +C Z +C Z +A Z +C Z +C Z +B Y +A Y +C Z +C Z +B Y +A X +C Z +B Y +C Z +B Y +C Z +B Y +A X +A Y +B Y +C Z +B Z +A Y +C Z +A Y +A Z +C Z +B Y +C Z +C Z +B Y +A Y +A Y +C Z +C Z +A Y +C Z +C X +C Z +C Z +C Z +A X +C Z +B Y +B Y +C Z +C Y +B Z +C Z +B Y +A X +A X +B Y +C Z +A X +C Z +B Z +C Z +A X +B Y diff --git a/2022/02/solve.py b/2022/02/solve.py new file mode 100644 index 0000000..00d4a5f --- /dev/null +++ b/2022/02/solve.py @@ -0,0 +1,40 @@ +data = [dat.split(" ") for dat in open("input").read().split("\n") if dat != ''] + +# X Y Z = Rock Paper Scissors +# A B C = Rock Paper Scissors + +def part1(): + res = 0 + + choice=[1,2,3] + mat = [3,6,0] + factors = [1, 0, 2] + mat = [0,3,6] + for line in data: + res += choice[ord(line[1]) - ord("X")] + factor = factors[ord(line[0]) - ord("A")] + rot = mat[factor:] + mat[:factor] + res += rot[ord(line[1]) - ord("X")] + + return res + +# X Y Z = lose draw win +# 1 2 3 = Rock Paper Scissors +# A B C = Rock Paper Scissors + +def part2(): + res = 0 + + choice = [0,3,6] + mat = [3,1,2] + + for line in data: + res += choice[ord(line[1]) - ord("X")] + factor = ord(line[0]) - ord("A") + rot = mat[factor:] + mat[:factor] + res += rot[ord(line[1]) - ord("X")] + + return res + +print(f"Part 1: {part1()}") +print(f"Part 2: {part2()}") |