summaryrefslogtreecommitdiff
path: root/Advent-of-Code-2022/aoc-2
diff options
context:
space:
mode:
Diffstat (limited to 'Advent-of-Code-2022/aoc-2')
-rwxr-xr-xAdvent-of-Code-2022/aoc-2/build.sh5
-rw-r--r--Advent-of-Code-2022/aoc-2/input.txt2500
-rw-r--r--Advent-of-Code-2022/aoc-2/main.c70
-rw-r--r--Advent-of-Code-2022/aoc-2/sample.txt3
4 files changed, 2578 insertions, 0 deletions
diff --git a/Advent-of-Code-2022/aoc-2/build.sh b/Advent-of-Code-2022/aoc-2/build.sh
new file mode 100755
index 0000000..30f495e
--- /dev/null
+++ b/Advent-of-Code-2022/aoc-2/build.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+set -xe
+
+gcc -o main main.c -Wall -Wextra -pedantic
diff --git a/Advent-of-Code-2022/aoc-2/input.txt b/Advent-of-Code-2022/aoc-2/input.txt
new file mode 100644
index 0000000..dd8db24
--- /dev/null
+++ b/Advent-of-Code-2022/aoc-2/input.txt
@@ -0,0 +1,2500 @@
+C Z
+A Y
+C Z
+A Y
+C Y
+A Z
+B Y
+C X
+A Y
+B X
+B X
+A Y
+C Z
+C Y
+C Y
+A Y
+C Y
+B X
+B X
+A Z
+C Y
+B Z
+C Z
+A Z
+B Y
+A Y
+C Z
+A Z
+A Y
+C Z
+C Z
+A X
+A Y
+B Y
+C X
+B Y
+C Z
+A Z
+A X
+A Z
+A Y
+C Y
+C X
+C Y
+A Z
+C Z
+C Z
+A Y
+A Z
+C Z
+A Y
+C Z
+C Y
+C Z
+A Z
+A Y
+C Z
+C Y
+C Y
+C X
+B Y
+B Y
+C Y
+A Z
+A Z
+B X
+B Z
+B X
+A Y
+A Z
+A Y
+C Y
+B X
+B Y
+A Z
+C Y
+C Z
+A Y
+B X
+C Z
+A Y
+C Z
+C Z
+A Y
+B Z
+C Z
+A Y
+B X
+A Y
+C Z
+C Z
+B Y
+B Z
+B Z
+A Y
+A Z
+B Y
+C Z
+C Y
+C Z
+A Y
+C Z
+C Z
+C Z
+C Y
+A Z
+A Z
+C Z
+C Z
+A Z
+C Z
+C Y
+C X
+A Z
+A Z
+B Z
+A Y
+A Y
+C X
+B Y
+C Y
+A Y
+B X
+B Y
+B Y
+B Y
+C Y
+A Z
+C Y
+A Y
+C Z
+B Y
+B X
+A Z
+C Y
+B Y
+A Y
+C Z
+B Z
+B Z
+A X
+B Y
+C Z
+B Z
+B Y
+C Z
+B X
+B Y
+A Y
+A Y
+A Y
+B Y
+B Y
+A Z
+C Z
+A Y
+A Z
+A Y
+A X
+C Y
+A Y
+C Z
+A Z
+C Z
+C Y
+C X
+B Z
+A Z
+C Y
+C Z
+A Z
+C Z
+C Z
+C Y
+C Z
+C Y
+C Z
+C Y
+C Z
+C Z
+C Y
+B X
+A Y
+C Y
+C Z
+B Y
+B Y
+C X
+C Z
+A Z
+B X
+C Z
+A Y
+B Y
+C Z
+C Z
+C Z
+B X
+A Y
+C Z
+B Z
+B X
+C Z
+C Z
+C X
+A Y
+A Y
+C Z
+A Y
+A Y
+A Y
+B X
+C Z
+B X
+C Z
+A Y
+A Z
+B X
+B Z
+C Z
+A Y
+C Y
+C Z
+C Y
+B X
+B Y
+C X
+C Z
+A Y
+A Y
+B Z
+A Y
+C Z
+C Z
+B Y
+B X
+C Z
+C Y
+C Y
+B Y
+C Y
+A Y
+C X
+C Z
+A Y
+A Y
+C Y
+A Y
+C X
+C Z
+A Y
+B Z
+A Y
+A Y
+A Y
+C Z
+B X
+B Y
+C Y
+A Z
+C Y
+C X
+B Z
+A Y
+C Z
+A Y
+B Y
+B X
+A Y
+C X
+C X
+B Y
+C Z
+B X
+C X
+C Z
+A Y
+C Z
+C X
+C Z
+B Y
+C Z
+C Z
+A Y
+C Z
+B Y
+A Y
+A Y
+C Y
+C Z
+B X
+C Z
+C X
+C Y
+B Z
+A Y
+B X
+C Y
+B Y
+C Y
+B Y
+A Y
+A Y
+B X
+B Z
+B X
+B Y
+C X
+C Z
+A Y
+C Z
+C Z
+C Z
+C Z
+B Z
+C Z
+B Y
+A Y
+C Y
+C X
+C Z
+B X
+C Z
+B Y
+C X
+C Z
+A Y
+A Z
+B Z
+A Y
+B Y
+B Z
+C Y
+B X
+A X
+C Y
+C X
+B Y
+C X
+C Z
+C Z
+C Z
+B X
+C X
+A X
+B Y
+B Z
+C Z
+C Z
+C Y
+C Z
+B Y
+C Y
+C Y
+C Z
+B X
+B Z
+B Y
+B Y
+C Z
+B Y
+A X
+B X
+A Z
+C Z
+C Z
+A Y
+C Z
+A Y
+C Y
+B Z
+B Z
+C Z
+C X
+A Y
+C X
+B Z
+A Y
+B X
+A Z
+A Z
+B X
+C X
+C Y
+B Y
+A Y
+B Y
+C Z
+C Z
+C Y
+A Y
+C Y
+C Z
+C Y
+C Z
+C Z
+C Z
+A Y
+A Z
+A Y
+C Z
+B X
+A Y
+C Z
+C Y
+C X
+C Y
+C Z
+C Y
+A Y
+A Z
+C Y
+A Z
+C Y
+A Y
+A Y
+C Z
+C Y
+A Y
+A Y
+B Y
+B Z
+A Z
+C Z
+C Z
+C Z
+C X
+B X
+C Z
+C Y
+A Z
+B Y
+C Z
+C Z
+B Y
+A Z
+C Z
+B Z
+B Y
+C Y
+C Y
+A Z
+C Z
+A Z
+B Y
+C Y
+B X
+C X
+B Y
+A Z
+C Z
+C Y
+C Z
+B X
+C Z
+C Y
+C X
+C Z
+A Y
+A Z
+C Y
+B Y
+A Z
+B X
+C Z
+C Y
+C Y
+C Z
+A Z
+A Z
+B Y
+B X
+B X
+A Y
+B X
+C Y
+A Y
+A Y
+B X
+C Y
+B Z
+A Z
+B X
+C Y
+C X
+A Y
+A Z
+A Y
+C Z
+B Z
+C Z
+A Y
+C Z
+C X
+A Z
+B Y
+A Y
+B Y
+C Z
+C X
+A Z
+C Y
+B X
+A Y
+C X
+C Y
+A Z
+B Z
+A Y
+C Z
+B Y
+A Y
+C Y
+C X
+B X
+C Z
+B X
+C Y
+C X
+C Y
+C Y
+B X
+A Y
+B X
+C Y
+C Z
+B X
+C Z
+B Y
+A Y
+C Z
+A Z
+A X
+B Y
+A Z
+A Y
+C Z
+C X
+B Y
+C Y
+A Y
+C Y
+A Z
+A Z
+A Z
+C Y
+A Y
+B Y
+C X
+C X
+C Z
+A Z
+C Y
+C Z
+C Y
+C Y
+A X
+B Z
+B Y
+A Y
+A X
+A Z
+C Z
+A X
+A Y
+C Z
+C Z
+C Y
+C Z
+C Z
+C X
+B Y
+B Z
+B Y
+A Y
+B Y
+B X
+A Z
+B Y
+C Y
+A Z
+B Y
+B Y
+C X
+C Z
+B X
+A Y
+C Z
+C X
+A Z
+A Y
+A Z
+C Z
+B Y
+B Y
+C Z
+A Y
+A Y
+C Y
+B Y
+C Y
+C Y
+C Y
+A Y
+C Z
+B X
+A Y
+B Z
+A Y
+B X
+C Z
+C Y
+C Y
+A Y
+A X
+C Z
+B X
+B X
+B X
+C Y
+C Y
+A Z
+A Y
+C Z
+B Z
+C Z
+C Z
+C Y
+A Y
+C Y
+A Z
+A Y
+B Y
+C Z
+C Y
+B Y
+A X
+B Y
+A Z
+B Y
+A X
+A Y
+B X
+A Y
+B Y
+B X
+A X
+A Z
+C Z
+A Z
+A Z
+C Y
+A X
+A Y
+C Z
+C Y
+A Y
+B Y
+A Z
+A Y
+B Y
+C Z
+C Z
+B X
+B Y
+C Y
+A Y
+B Y
+A Y
+B Y
+B Y
+B Y
+C Y
+C Z
+C Z
+B X
+A Y
+A Y
+A Y
+C Y
+C Y
+A Y
+A Y
+C Z
+C Z
+B Y
+B X
+A Y
+C Z
+A Y
+B Z
+B Y
+C Y
+C Y
+C Y
+B X
+A Y
+C Z
+A Z
+B X
+C Z
+B Y
+A Z
+C Y
+C Y
+A Y
+B X
+A Y
+A Y
+B X
+C Y
+C Y
+A Z
+C Z
+C X
+C Y
+B Y
+B Y
+C Y
+C X
+A Y
+B Z
+A Y
+B Z
+A Z
+A Y
+C Z
+C Z
+C Z
+C Z
+C Z
+C Z
+C Y
+A Y
+C Z
+A Z
+B Z
+C Z
+A Z
+A Y
+C X
+A Z
+A Y
+C Z
+B Z
+A Y
+C Y
+B X
+C Z
+C Z
+A Y
+C Y
+B Y
+C Z
+C Y
+C X
+A Z
+B Z
+A Z
+A Y
+B Z
+C Z
+C Z
+A Y
+A Y
+C Z
+A Y
+A X
+C Y
+B Y
+B X
+B Y
+B X
+C X
+C X
+A X
+A Y
+C Y
+A X
+B X
+C Y
+A Z
+B X
+C Z
+C Z
+B Y
+A Y
+C Z
+C Z
+C Y
+A Z
+B X
+C Y
+A Y
+C Z
+C Z
+A Z
+B Z
+B Z
+C Z
+C Y
+C Z
+A Y
+C Z
+C Z
+B X
+C Z
+C Z
+B Z
+C Z
+B Y
+C X
+C Y
+C Z
+B Y
+A Z
+C Z
+A Y
+B Y
+C Z
+C Z
+C Z
+A Y
+A Y
+A X
+C Z
+B X
+C Z
+C Y
+C Y
+A Z
+B X
+C Z
+C Z
+B X
+C Y
+A Z
+C X
+C Y
+B Y
+C Y
+C X
+A Z
+B Z
+A Z
+B X
+C Y
+B X
+C Z
+C Z
+B X
+B Y
+C Z
+B Y
+A Z
+A Y
+B Z
+C X
+C Z
+C Y
+C Z
+B Y
+A Z
+C Z
+B Y
+B Y
+C X
+C Y
+A X
+B Z
+C X
+A Z
+B Z
+A Y
+A Y
+B X
+C Z
+C Z
+A Y
+C Z
+A Z
+C Y
+C Z
+C Z
+A Z
+C Z
+C X
+A Y
+C Y
+C X
+C X
+B X
+C X
+A Y
+B Y
+C Y
+C Z
+C X
+C Z
+A Z
+C Z
+A Y
+A Y
+B Z
+B X
+C X
+A Y
+C Z
+A Y
+C Y
+C X
+B Y
+C Z
+B X
+A Z
+A Z
+C X
+B X
+C Z
+C Z
+B X
+A Y
+A Z
+C Z
+C Z
+C Z
+A Y
+C Z
+B Z
+A Y
+B Z
+A Y
+B Y
+C Y
+A Y
+B Y
+A Z
+A Z
+C Y
+A Z
+C Z
+B X
+C Y
+B X
+B X
+B Y
+B Z
+A Y
+C Y
+C Z
+C Y
+B Z
+C Y
+C Y
+C Z
+A Y
+B Z
+C Y
+C Z
+C Z
+B Z
+A X
+C Z
+B Y
+C Y
+A Z
+C Z
+A X
+C X
+B Y
+A Z
+A Z
+B X
+C Z
+B X
+C Y
+C X
+C Z
+C X
+C Z
+C Z
+B X
+B Y
+A Y
+B X
+C X
+B Y
+A Z
+A Z
+C Y
+C Y
+B X
+C Z
+B Y
+B X
+A Y
+A X
+C Y
+A X
+C Y
+C Z
+C Y
+C X
+C Z
+B X
+B Z
+B Z
+C Z
+B Y
+C Z
+C Y
+A Y
+C Y
+A Y
+C Z
+A Y
+A Y
+A Z
+C X
+C Z
+C Z
+C Z
+B Y
+C Z
+B X
+A Y
+A Z
+C Z
+B X
+A Z
+C Z
+A Z
+A Y
+B Y
+A Z
+C Z
+B Y
+C Y
+C Z
+A X
+C Z
+C Z
+C X
+C Z
+C Z
+C Z
+B Y
+C Y
+B Y
+B Y
+C Z
+B X
+A Z
+A Y
+C Z
+C Y
+B X
+C X
+A Y
+C Z
+A Y
+B Y
+C Z
+C Y
+B Y
+C X
+B X
+B X
+B X
+C Y
+C Y
+C Y
+C X
+C X
+A Y
+B X
+C Z
+A Z
+A X
+B Y
+C Z
+C Y
+A Y
+C Y
+C Y
+C Y
+C Y
+B Y
+B Y
+C Y
+B X
+A Y
+A Z
+A Y
+B Y
+A Y
+C Z
+C Y
+A Y
+B Y
+B Y
+B Y
+C Y
+C Z
+B X
+B Y
+C Z
+C Y
+C Z
+C Z
+C Z
+B Y
+C X
+C Y
+C Z
+C Z
+B Y
+A Y
+B Y
+C Z
+A Y
+A Z
+B X
+B X
+C Z
+B X
+A Y
+C Z
+B Y
+B Y
+C Z
+B X
+A Y
+A Y
+B X
+C Z
+A Z
+C Z
+C Y
+B X
+B Y
+A Y
+C Z
+C Y
+C Z
+C Z
+B X
+B Z
+C Z
+C X
+A Y
+C X
+B Z
+C Z
+C Z
+A X
+C Z
+A Y
+C Y
+A Y
+A Z
+C Y
+B Z
+A Z
+C Z
+C Z
+C Z
+A Y
+C X
+C X
+B Y
+C Y
+A Z
+A Z
+B X
+B Z
+C X
+C X
+C Y
+C Y
+C Z
+A Y
+C Y
+B Z
+B X
+C Y
+C Z
+B Z
+A Y
+A Y
+C Z
+B Y
+C Y
+B Y
+C X
+C X
+C Z
+B Y
+A Y
+C Z
+B Z
+A Y
+A Y
+A Y
+A Z
+B X
+C Z
+A Z
+C Y
+C Z
+B Z
+B Z
+B Y
+C Y
+C Z
+C X
+B Y
+B X
+A Y
+C Y
+A Z
+C Z
+C Z
+A Y
+A Z
+C X
+C Z
+A Z
+C Z
+B X
+C Y
+A Y
+B Z
+B Z
+B Y
+C Z
+C Z
+B X
+A Z
+C Z
+C Y
+B Y
+C Y
+C Z
+C Y
+B X
+B X
+C Z
+C Y
+B Y
+B X
+C Z
+B X
+C Y
+C Z
+C Y
+B Z
+C Z
+A Y
+A Y
+B X
+C Z
+B X
+B X
+A Y
+B X
+B X
+C Y
+C X
+B X
+C Z
+C Z
+C Z
+C Z
+C Y
+B Y
+C Z
+C Z
+A Y
+A Z
+C X
+C Y
+A Z
+C Z
+B X
+B Y
+C Z
+A Z
+C X
+A Y
+B Y
+C Z
+A Y
+C X
+A Y
+C Z
+C X
+A Z
+C Y
+A X
+C Y
+C X
+B Y
+A Y
+C X
+C X
+A Y
+B X
+C Z
+C X
+A Z
+A Y
+C X
+C Z
+C Z
+C Z
+C Z
+C Y
+A Z
+C X
+C Z
+C Z
+A Y
+B X
+B X
+A Z
+C Z
+B Y
+C Z
+B Y
+C Z
+C Z
+B X
+C Z
+C Z
+B Z
+C Y
+A Y
+C Y
+B Z
+C Y
+C X
+C Z
+B X
+C Z
+A Y
+A Y
+C Y
+B Y
+A Z
+A Y
+A Z
+C Y
+B Y
+A Z
+C Z
+C Y
+C Y
+B Z
+B Z
+C X
+A Y
+B X
+B Y
+B Y
+C Z
+A Z
+C Z
+B X
+C Z
+C Y
+C Y
+C Y
+C X
+B X
+C Y
+A X
+B Y
+A Z
+C Z
+C Z
+C X
+A Z
+B X
+C Y
+C Z
+B Y
+A X
+B Y
+C Z
+A X
+C Z
+B Y
+C Y
+A Y
+C Y
+B Z
+C Z
+A Y
+A Y
+A Y
+A Y
+A Z
+C Z
+B Y
+C Z
+C Y
+B X
+A Y
+C Z
+C Z
+C X
+B Z
+C X
+A X
+B Z
+C Z
+A Y
+A Z
+A Y
+A Z
+C Y
+B Y
+A Z
+C Z
+B Y
+B Y
+C X
+A Z
+C X
+A Z
+C Y
+C X
+C Z
+A Y
+B Y
+B Z
+C Z
+B X
+B X
+C Z
+C Z
+B Z
+C X
+A Y
+B X
+B Y
+C Z
+C X
+B Z
+B X
+B X
+A Z
+C Z
+A Z
+C Z
+C Z
+A Y
+C Z
+A Y
+C Y
+A Y
+C Z
+C Z
+C Z
+A Y
+C Z
+A X
+B X
+B Y
+C X
+C Z
+A Y
+C Z
+C Y
+C Z
+C Y
+C X
+A Y
+C Z
+C Y
+C Y
+C Z
+A Y
+C Z
+C X
+C X
+B X
+B X
+C Z
+C Y
+A Z
+C Z
+C X
+C Z
+C Y
+B Y
+C Z
+C X
+B X
+C X
+A Y
+C Z
+A Z
+A Y
+C Z
+C Z
+B X
+B Y
+C Z
+C Z
+C Y
+C Y
+C Y
+C Z
+A Z
+B Y
+B X
+B Y
+A Y
+C Y
+A Y
+B Y
+B X
+B X
+C X
+C Z
+C Z
+C Z
+A X
+B Z
+A Z
+C Z
+C Z
+B X
+B X
+B Y
+C Z
+C X
+A Y
+C Z
+B X
+C Z
+B Y
+C X
+B Z
+C X
+A Y
+B X
+C X
+C Y
+A Y
+C Z
+A Y
+B X
+B Z
+A Y
+C Z
+C Y
+C Y
+C Y
+C Y
+C X
+C Z
+B Y
+B Y
+A Y
+B Z
+A Y
+C Y
+C Y
+B Z
+B Y
+C Z
+B Z
+C Z
+B X
+B Y
+A X
+B X
+A Y
+A Z
+C X
+C X
+C Z
+B Z
+B Y
+A Z
+A Y
+A Y
+C Z
+C Z
+C X
+B X
+C Z
+C Y
+C Y
+C Y
+C Y
+B Y
+A Y
+B Y
+A Z
+B X
+C Z
+C Y
+C Z
+B Y
+C X
+B X
+A X
+C Z
+C Z
+B Y
+A Y
+B Y
+B Y
+C Y
+A Z
+B Z
+C X
+A Y
+A Y
+C Y
+A Z
+C Z
+C X
+C X
+B Z
+C Y
+B X
+B Y
+C Z
+C Z
+C Y
+A Y
+A Y
+C X
+A Y
+C X
+B Y
+C X
+C Z
+A Z
+C X
+C Z
+C Z
+A Y
+C Z
+C Y
+B X
+A Y
+B Y
+C X
+A Y
+A Y
+C Z
+C Z
+B X
+C Y
+A Z
+A Y
+C Z
+C X
+C Z
+C Z
+A Y
+A Y
+C Z
+A Y
+C Z
+B Y
+C Y
+C Z
+C Z
+B Z
+C Y
+B Z
+A Z
+B Y
+B X
+B X
+C X
+C X
+A Z
+C Z
+B X
+A Z
+C X
+B Y
+B Y
+C Z
+A X
+C X
+C X
+B X
+A Y
+A Z
+C Z
+C Y
+C Z
+A Y
+B X
+C Z
+B Y
+C Y
+A Z
+B Y
+C Z
+B X
+B Z
+C Z
+A Y
+A Z
+C Z
+C Y
+A Z
+A Z
+C Z
+B X
+A Y
+A Y
+A Y
+A Y
+C Z
+A X
+B Z
+A Y
+B X
+C Z
+B X
+C Y
+B Y
+C Z
+B X
+B Z
+A Y
+C Z
+B Y
+C Z
+A Y
+A Z
+C Z
+B Y
+A Y
+C Y
+C X
+B Y
+B X
+B Y
+C Z
+C Z
+C Y
+A Y
+A Z
+C Y
+C Z
+C Z
+B Y
+B X
+C Z
+B X
+A Y
+C Y
+A Z
+A Y
+C Z
+B Y
+C Y
+A Y
+B X
+B Z
+C Y
+C Y
+A X
+C X
+C Y
+C Y
+C Z
+B Z
+C Z
+A Z
+A Y
+C Y
+C Y
+B Y
+C Y
+C Y
+C Y
+C Z
+B Z
+C Y
+C Y
+B X
+B Z
+B Z
+C Z
+B Z
+C X
+A X
+C Z
+B X
+C Z
+A Y
+A Z
+C Z
+C Z
+B X
+B X
+A Y
+A Z
+B X
+B Z
+C X
+A Y
+A Y
+C Z
+A Y
+B Y
+B Z
+A Z
+B X
+C Z
+C Z
+B Z
+B Y
+C Z
+C Y
+A Y
+C Z
+C Z
+A Y
+A Y
+B X
+B Y
+A Y
+C Y
+B Y
+C Z
+A Y
+C Z
+B Y
+B X
+C X
+A Y
+A Y
+B X
+C Y
+A Y
+A Y
+B Y
+C Z
+A Z
+C Y
+C Z
+C Z
+C Z
+A Z
+A Z
+A Y
+A Z
+C X
+B Z
+A Y
+A Y
+C Y
+C X
+B X
+C Y
+C Y
+C Z
+C Z
+A Z
+A Y
+C Y
+B Y
+C Y
+C Z
+C Z
+B Y
+B Y
+A Y
+B Y
+C Z
+A X
+B X
+C X
+C Z
+B Y
+A Z
+A Y
+B Z
+C Z
+B Y
+C Z
+C Y
+C Z
+A Y
+A Y
+A Z
+C X
+C Z
+A Y
+B Z
+B X
+C X
+C Z
+C Z
+C Z
+C Y
+C Z
+B X
+C Z
+C Z
+C Y
+C X
+B Z
+B X
+C Y
+C Z
+B Y
+A Y
+C Y
+A Z
+C Z
+B Z
+A Y
+A Z
+A Z
+A Y
+C Z
+C Y
+A Y
+B X
+B Y
+C Y
+C Z
+B Y
+B X
+B Y
+B Y
+C Y
+B Y
+C Z
+A Z
+C Y
+A Y
+B X
+B Z
+B Y
+A Y
+B X
+B Z
+A Y
+C Y
+B Y
+C Y
+C Y
+B Y
+C Z
+B Z
+A Z
+C Y
+C Z
+A X
+C Z
+C Z
+A Y
+C Z
+A Z
+A Y
+A X
+C Y
+B Y
+C Y
+C X
+B X
+A Y
+A Y
+A Y
+A Z
+A Y
+C X
+C Y
+C X
+A Y
+B X
+C Z
+A Z
+C Y
+B Z
+C Z
+B Y
+C X
+C Z
+C Z
+C Z
+C Z
+B X
+C Y
+B X
+A Y
+A Y
+C Z
+C X
+C Z
+C X
+C Y
+C Y
+B X
+C Z
+B X
+C Z
+C Z
+A Y
+C Z
+C Z
+C Z
+B Z
+C Z
+A X
+C Z
+C X
+C X
+C Y
+A Z
+B X
+A Y
+A Y
+A Y
+C Z
+C Y
+B X
+A Z
+C Z
+C Z
+C Z
+C Z
+B X
+C Z
+C Z
+C Y
+B Y
+A Z
+A Y
+A Z
+B X
+C Z
+C Y
+B Y
+A Y
+C Z
+B X
+A Y
+A Y
+C Z
+B Y
+C Y
+C Z
+C Y
+A Y
+B X
+C Z
+A X
+C Y
+C Z
+B Y
+A Y
+B X
+B Y
+C Y
+B Y
+C Z
+C Z
+A Z
+B X
+B Y
+B Y
+A Y
+B X
+C Y
+A Y
+B Y
+A Y
+C Y
+C Y
+B Y
+C Z
+C X
+B Z
+A Z
+A Y
+B X
+B Y
+C Y
+C Z
+A Z
+B Z
+B X
+C X
+C Y
+C X
+A Y
+A Y
+C Z
+C Y
+C X
+B X
+B Z
+C Z
+C Z
+B X
+C Y
+C Z
+C X
+C Y
+C X
+A Z
+C Y
+B Y
+B Y
+C Y
+A Z
+B Y
+C Z
+C Y
+A Z
+A Y
+C Z
+C X
+B Z
+C Z
+C Z
+A Y
+C Y
+C Z
+C Y
+B Z
+B Y
+B Y
+A Z
+C X
+A Y
+C Z
+C Y
+A Y
+C X
+C Z
+C Z
+B Z
+C X
+C Z
+A Y
+A Y
+B Y
+C X
+A Y
+C Z
+A Z
+C Y
+B Y
+A Y
+A Z
+C Z
+B X
+A Y
+C Z
+A Z
+C Z
+C Y
+C Z
+C Z
+C Y
+A Y
+C Z
+A Y
+B X
+B Z
+C Z
+C Z
+C Y
+C Z
+C Y
+C Y
+B X
+C X
+B Y
+C Y
+C Z
+B Y
+B Y
+A Z
+A Y
+B Y
+B X
+C Z
+C X
+A Y
+C Z
+C Y
+A Y
+C Z
+A X
+A Z
+A X
+C Z
+A X
+B Y
+C X
+C Y
+C Z
+B Z
+C Y
+B Y
+C Z
+B Y
+C Y
+C Z
+A Y
+B Y
+A Z
+B Z
+C Z
+A Y
+C Y
+B X
+C Y
+A X
+A Y
+C Z
+C X
+C X
+B Y
+B Z
+B Z
+C Y
+C Z
+B Y
+C Z
+C Y
+A Y
+B Y
+C Y
+C Z
+B Z
+C Z
+C Z
+A Y
+B Y
+A Y
+C Z
+A Y
+A Y
+C Y
+A Z
+C X
+A Y
+A Z
+B Y
+A Y
+B Y
+C Z
+B X
+C Y
+A Y
+C Y
+C Z
+A Y
+C Y
+C Y
+A Y
+C Y
+C Y
+B X
+A Y
+C Z
+A Y
+A Y
+A Y
+B Y
+C Y
+A Y
+C Z
+B X
+C Z
+A Y
+B Y
+C Y
+A Y
+C Y
+C Y
+C Y
+C Y
+C X
+C X
+A Y
+C X
+C Z
+B Z
+A Y
+B Y
+C Z
+B X
+C X
+A Y
+B X
+C Y
+B Z
+B Y
+C Y
+C Z
+C Z
+C X
+A Z
+C Y
+A Z
+C Z
+B Z
+A Y
+C Y
+B Y
+A Y
+B X
+C Z
+C Y
+A Y
+A Y
+A Z
+C Z
+C Z
+C Y
+C Z
+B X
+C Y
+C Z
+A Y
+B Y
+B X
+A Z
+C Z
+C Y
+C Z
+B Y
+C X
+C Y
+C Z
+B Y
+A Y
+A Z
+B X
+C Z
+C X
+A Y
+B X
+C Z
+C Y
+B Z
+C Z
+C Z
+C Z
+A Y
+A Y
+A X
+B Z
+A Y
+C Z
+C Z
+C Z
+B X
+B Y
+C Y
+B Y
+A Y
+A Z
+A Y
+A Y
+B Z
+A Y
+C X
+C Y
+A Z
+C Z
+C Y
+C Z
+B Y
+C Z
+B X
+B X
+A Y
+B Z
+B X
+B Y
+B Y
+B X
+B Y
+A Z
+C Z
+C Y
+C Y
+A Z
+B Y
+C Z
+A Y
+C Y
+A Y
+A Y
+B X
+C Y
+A Z
+B X
+B X
+A Y
+C Y
+A Y
+C Z
+B Y
+C Z
+C Y
+A X
+C Z
+C Z
+C Z
+A Y
+C Z
+C X
+C Z
+C X
+C Z
+B Y
+A Y
+A Y
+A Y
+B X
+B Y
+B Z
+B X
+C Z
+C Y
+B Z
+A Z
+A Z
+C X
+C Z
+B X
+A Z
+C X
+A X
+B Y
+B X
+B X
+C Z
+C Y
+A X
+C Y
+C Y
+C Y
+B X
+A Z
+B Y
+B X
+A Z
+C Z
+B X
+A Z
+A Y
+B Z
+B Y
+C X
+C Z
+B X
+C Y
+C Y
+C Y
+A Y
+C Z
+A Z
+A Z
+C Y
+C Y
+A Y
+C Z
+C Z
+B X
+C Z
+C Z
+B Y
+A Y
+C Z
+B X
+C Y
+C Y
+C Z
+C Z
+A Y
+C Z
+C Y
+B X
+C X
+A X
+A Z
diff --git a/Advent-of-Code-2022/aoc-2/main.c b/Advent-of-Code-2022/aoc-2/main.c
new file mode 100644
index 0000000..af65b88
--- /dev/null
+++ b/Advent-of-Code-2022/aoc-2/main.c
@@ -0,0 +1,70 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#if 0
+ #define PART part1
+#else
+ #define PART part2
+#endif
+
+#if 0
+ #define FILENAME "sample.txt"
+#else
+ #define FILENAME "input.txt"
+#endif
+
+// outcome[opponent][player]
+int outcome[3][3] = {
+ /* player rock paper scissors*/
+/* rock */ { 1, 2, 0 },
+/* paper */ { 0, 1, 2 },
+/* scissors */ { 2, 0, 1 },
+};
+
+// player[opponent][player]
+int player[3][3] = {
+ /* lose draw win */
+/* rock */ { 2, 0, 1 },
+/* paper */ { 0, 1, 2 },
+/* scissors */ { 1, 2, 0 },
+};
+
+int score = 0;
+
+void part1(char *line)
+{
+ int opponent = line[0] - 'A';
+ int player = line[2] - 'X';
+
+ score += (player + 1) + (outcome[opponent][player] * 3);
+}
+
+void part2(char *line)
+{
+ int opponent = line[0] - 'A';
+ int outcome = line[2] - 'X';
+
+ score += (player[opponent][outcome] + 1) + (outcome * 3);
+}
+
+void parse()
+{
+ FILE *fp = fopen(FILENAME, "r");
+ if(!fp) {
+ fprintf(stderr, "ERROR: Could not open file: %s\n", FILENAME);
+ exit(1);
+ }
+
+ char line[8];
+ while(fgets(line, sizeof(line), fp))
+ PART(line);
+
+ fclose(fp);
+}
+
+int main(void)
+{
+ parse();
+ printf("%d\n", score);
+ return 0;
+}
diff --git a/Advent-of-Code-2022/aoc-2/sample.txt b/Advent-of-Code-2022/aoc-2/sample.txt
new file mode 100644
index 0000000..db60e36
--- /dev/null
+++ b/Advent-of-Code-2022/aoc-2/sample.txt
@@ -0,0 +1,3 @@
+A Y
+B X
+C Z