aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--day02/input2500
-rw-r--r--day02/part1.rb34
-rw-r--r--day02/part2.rb35
-rw-r--r--day02/test3
4 files changed, 2572 insertions, 0 deletions
diff --git a/day02/input b/day02/input
new file mode 100644
index 0000000..69dff16
--- /dev/null
+++ b/day02/input
@@ -0,0 +1,2500 @@
+B Z
+C Z
+C Z
+A Y
+B Z
+C Y
+C Z
+C Y
+C X
+A Z
+B Z
+C Z
+A Y
+C Z
+B X
+C Y
+C Z
+C X
+C X
+C Y
+C Y
+C X
+A Y
+C Y
+C Y
+C X
+C Z
+C X
+A X
+C Z
+C Y
+C Z
+C Z
+C Z
+A Z
+C Z
+B Z
+A Y
+A X
+A Y
+C Z
+A Y
+C Z
+A Z
+C Y
+C Y
+C Y
+A X
+C X
+C X
+C Y
+A X
+A Y
+C X
+A X
+C Z
+A Y
+C Z
+C Y
+A Y
+C Z
+A X
+A Y
+A X
+C X
+C Z
+A X
+B Z
+C Z
+C Y
+C X
+C X
+C Z
+C X
+C Z
+A X
+C Y
+A Y
+C Y
+C Z
+C X
+B X
+B Z
+C Z
+C X
+A X
+B Z
+A Y
+A Y
+B Z
+A Y
+C Y
+B Z
+B X
+C X
+C X
+C X
+A X
+A Z
+A Y
+A Y
+C Y
+C Z
+C Z
+C Z
+A Y
+C X
+A Y
+A X
+C X
+C X
+A X
+A Y
+A X
+A X
+A Y
+C Y
+A Y
+A Y
+A X
+C X
+B Z
+A X
+C Y
+C X
+C Z
+C Z
+C Z
+C Z
+C Y
+C X
+C X
+A X
+A Y
+A X
+C Z
+C X
+C Y
+C Y
+C Z
+C Z
+B Z
+C Z
+C Y
+C X
+C Y
+A X
+A Y
+C X
+B Z
+B Y
+C Z
+C Y
+C X
+A Y
+C Y
+B Z
+A Z
+C X
+C Z
+C Y
+C X
+C Z
+A X
+A Y
+C Y
+C Y
+A Y
+A X
+A X
+C X
+C X
+C Z
+A Y
+A Y
+C Y
+C Z
+A X
+A Y
+C X
+C X
+C Y
+C X
+C Z
+C X
+C Z
+C Z
+C Z
+C Z
+A Y
+B Z
+C Y
+C Z
+A Z
+C X
+C X
+A X
+A Z
+C Z
+C X
+C Z
+A X
+B Z
+B Z
+A X
+C X
+C X
+B Z
+B Z
+B Z
+C Z
+C X
+A Y
+C Z
+A X
+C Y
+C Z
+C Z
+C X
+C X
+C Z
+C Y
+C Y
+C X
+C X
+A X
+C Y
+A X
+C Y
+C X
+B X
+B Z
+C X
+C X
+B X
+C Z
+C Y
+A X
+C Z
+C Z
+C Z
+C Y
+C X
+A Y
+A Z
+C Z
+B Z
+C Z
+C X
+A Y
+C X
+C X
+A X
+C X
+C Z
+A X
+C Z
+C Y
+C Y
+C Y
+C Z
+A X
+C Y
+C X
+C Z
+A X
+C Z
+C X
+C X
+C X
+A Y
+C Z
+A Y
+C Z
+C Y
+C Z
+A Y
+C X
+C X
+C X
+C Y
+C Z
+C X
+C Y
+C X
+A X
+C X
+C Y
+C X
+C Z
+C X
+B Z
+C X
+B Z
+B X
+C X
+C X
+C X
+B X
+A Y
+A Y
+A X
+B Z
+C X
+A Z
+C Y
+C X
+C X
+C Y
+A Y
+A Z
+C X
+A Y
+C Z
+C X
+C X
+C Y
+C Y
+A Z
+A X
+C Z
+C X
+C Z
+B Y
+A Y
+C Z
+A Y
+C Z
+A X
+C Y
+C Y
+C X
+A Y
+C X
+C X
+B X
+C Z
+C X
+C Y
+C Z
+C Z
+C Y
+C Y
+C Y
+C X
+B Z
+C X
+C X
+C Y
+C Y
+C Z
+B Z
+C X
+C Y
+B Z
+C Z
+A Y
+C X
+C X
+A Y
+C Y
+C Z
+C X
+A Y
+A Y
+C Z
+C Z
+C Z
+A X
+C X
+C Z
+C Z
+C Z
+A Y
+A X
+C X
+C Z
+C X
+C X
+C Y
+A Y
+C X
+C Y
+C Z
+C Y
+A X
+C X
+C X
+C Z
+A X
+B X
+C Y
+A X
+C Y
+C Y
+C X
+C Z
+B X
+C X
+C Z
+A Y
+C Z
+C X
+A X
+C Y
+A X
+C Z
+A X
+C X
+C Y
+C X
+C Z
+C X
+C X
+C Y
+A X
+C Y
+A Y
+C Z
+C X
+C X
+A X
+A Z
+C X
+C X
+C Y
+B Z
+A X
+A X
+C X
+B Z
+C Z
+A Y
+C Y
+C Z
+C X
+A Z
+C Y
+A X
+C Y
+C Z
+C Z
+C X
+C Y
+C X
+C Y
+C Y
+C X
+A Y
+B X
+C X
+A X
+A Y
+C Y
+C Z
+C Y
+C X
+A Y
+C Z
+C X
+C X
+A Z
+C Y
+C Z
+A X
+C X
+C Z
+A Y
+A X
+B X
+C Z
+B Z
+C X
+A Z
+C Z
+A X
+A Y
+C X
+A X
+B Z
+C X
+C Y
+C Z
+C Y
+C Y
+C Z
+C X
+B X
+C Y
+B Y
+C Z
+A Y
+A Y
+C Y
+C Z
+A X
+C Z
+C Y
+B Z
+C X
+A X
+C X
+C X
+C Y
+C Y
+C Z
+A Y
+C Z
+A X
+A Y
+C X
+C Y
+C Z
+C X
+A X
+B Z
+C Z
+A X
+C X
+C X
+C X
+B Z
+C Z
+C Y
+B Z
+A X
+C Z
+C Y
+A X
+C X
+B Z
+C Y
+C X
+C Z
+C Z
+C Z
+C X
+C Y
+B X
+A X
+B Z
+C X
+C Y
+C Z
+C X
+C Z
+C Z
+C Z
+C Y
+A X
+C X
+C Z
+A X
+C X
+C Z
+B X
+C Z
+B Z
+A Y
+A X
+C Z
+C Z
+C Y
+C Z
+C Y
+C Z
+A Y
+B Z
+A Y
+C X
+A X
+A X
+A X
+B Z
+C Z
+B Y
+C Y
+A Y
+A Y
+C Z
+A Y
+C Z
+C Z
+A Y
+C Z
+C Z
+C Z
+A Y
+C Z
+C Z
+C Z
+C Z
+A Y
+C Y
+A Y
+C Y
+C X
+C X
+C Z
+C X
+C Z
+C Y
+A X
+C Z
+B X
+C Z
+A X
+C Z
+C Z
+C Y
+C Z
+C Y
+C X
+C Y
+B X
+C Z
+C X
+C Y
+A Y
+C X
+C Z
+C X
+C Z
+C X
+A Z
+C Z
+C X
+C X
+B Z
+C Z
+C X
+A X
+C Y
+A Y
+C X
+C Z
+C Z
+A Y
+A X
+B Y
+C Y
+C Y
+C Y
+C X
+A X
+C Z
+C Y
+C Z
+C X
+C Z
+C Z
+C Y
+B X
+C X
+C Z
+C X
+C X
+C Y
+A X
+B Z
+A X
+C X
+C Z
+B Z
+A Y
+C Y
+B Z
+C X
+A Z
+A X
+C Z
+C Z
+C X
+A Y
+B Y
+C X
+C Z
+B Y
+A Y
+A Y
+C X
+A X
+C Y
+C X
+C X
+C Z
+A X
+A X
+A X
+B Z
+C Y
+C Z
+C X
+A X
+B Z
+C Z
+C Z
+C X
+C X
+C X
+C X
+C Z
+C Y
+C Z
+C Z
+C Z
+A Y
+C Z
+C X
+C Y
+C X
+B Y
+A Y
+C Z
+C X
+C Z
+A X
+A X
+C Y
+C Y
+C X
+C Z
+C Z
+C Z
+C X
+C Z
+C X
+C Y
+C X
+C X
+C Y
+C Y
+B Z
+C Z
+C Z
+B Z
+C Y
+C Z
+C Y
+B Z
+C X
+C Z
+C Y
+C Z
+A Y
+C Z
+B Z
+C Z
+C X
+C X
+A Z
+C Z
+C X
+A Y
+A Z
+A X
+C Y
+C X
+C Z
+C X
+C X
+C Y
+C X
+C Z
+C X
+C Y
+C Y
+C Z
+C Y
+C Y
+C Y
+A Z
+A Y
+C Z
+C Y
+C Z
+C X
+A X
+C Z
+C Z
+A Y
+C Z
+C X
+C X
+C X
+C Z
+C X
+C Z
+C Y
+A Z
+C Z
+C Y
+C Z
+C X
+C Y
+C Y
+C X
+C X
+C Z
+A Y
+C Y
+B Z
+A Y
+C Y
+C X
+C Z
+C X
+C Y
+C Z
+A Y
+A X
+C Z
+B Y
+C Y
+A X
+C Y
+C Z
+B Z
+C Y
+C Z
+C Z
+B Z
+C X
+A Y
+C Z
+C X
+B Y
+B Z
+C Z
+B Z
+C X
+A X
+A X
+B Z
+C Z
+C Z
+C Z
+C Y
+A Y
+C Z
+B X
+C Y
+A Z
+C Y
+C Y
+A Y
+C X
+C Y
+B Z
+C X
+C X
+C X
+B Z
+C X
+B Z
+A X
+C Y
+C Y
+A X
+C X
+A Y
+C X
+A X
+C Z
+A X
+C X
+C X
+A Y
+C Z
+C Z
+C X
+C X
+B Z
+A Y
+C Y
+C X
+A Y
+C Z
+A X
+C X
+B Z
+C X
+C X
+B X
+B X
+B Z
+C Z
+C X
+A Y
+B Z
+B Y
+C X
+C Z
+A Y
+C Z
+C X
+C X
+B Z
+C X
+A Y
+A X
+A Z
+C Z
+C Y
+B Z
+C X
+A X
+C X
+A X
+C X
+C X
+C Z
+A X
+B Z
+C Z
+C X
+C X
+A X
+C Z
+C X
+C X
+C Z
+C Y
+C X
+A X
+C X
+C X
+C X
+A X
+C Z
+C Z
+C Y
+B Z
+C X
+A Y
+C Z
+C X
+C Y
+B X
+A X
+C X
+B Z
+C Y
+B X
+A Y
+B X
+C Z
+C Y
+C X
+C Z
+A Y
+A Y
+C X
+A X
+C X
+C X
+A Y
+A X
+B X
+C Y
+A Y
+C X
+C Z
+A Y
+C Z
+B Z
+C Z
+A X
+C Y
+C Y
+C Y
+A Y
+A Z
+A Y
+C X
+C X
+A Y
+C Y
+A X
+C Y
+A Y
+C X
+C Y
+B Z
+C Z
+C Z
+B X
+C Y
+B X
+A Y
+A Y
+A X
+A Y
+C Z
+C Z
+C Y
+B Z
+A Z
+C X
+C Z
+A X
+C X
+C X
+C Z
+C Y
+C X
+A Y
+C Z
+B Z
+A Y
+A X
+C Y
+B X
+C Z
+A Y
+C X
+C Y
+C X
+A X
+C Z
+C Z
+C X
+C Z
+A X
+C X
+C X
+A Z
+B Z
+A X
+C Y
+C X
+A X
+C X
+C Z
+C Y
+A Y
+C X
+A Y
+A X
+C Y
+A Y
+C X
+A Y
+C X
+B Z
+C X
+C X
+C X
+C Z
+C Z
+C Z
+B Z
+C X
+B Z
+C X
+A X
+A Y
+A Y
+A X
+C Y
+A X
+C Y
+A Y
+B Z
+C X
+C X
+C Y
+C X
+C Z
+A X
+A Y
+C Z
+A X
+C X
+C X
+B X
+C X
+A Y
+C X
+C Z
+B Z
+A X
+B Z
+C Y
+C Z
+C Y
+C Y
+C X
+C Z
+C Z
+C Z
+A X
+C X
+A X
+A Y
+A X
+C Z
+C Z
+A Z
+C Y
+B Z
+A X
+C Z
+C Z
+C X
+C X
+A X
+A Z
+C Z
+C X
+C X
+C Y
+C Y
+C Y
+A Y
+A Y
+C Z
+A X
+C Z
+C X
+A X
+C Y
+C Z
+C Y
+A X
+A Y
+A X
+C Z
+B Z
+C Z
+A X
+C X
+C Y
+C X
+C X
+C Y
+C Z
+C Z
+C Y
+C X
+A Y
+C Y
+C Z
+B Z
+C Y
+C Y
+A X
+C Z
+B Z
+C X
+B Z
+B Z
+C Z
+C X
+C Z
+A X
+C Z
+C X
+A Y
+A X
+A Y
+C Z
+C Z
+C Z
+C Z
+C X
+B Z
+C Y
+C X
+B Z
+C X
+A X
+A Y
+C X
+A Z
+A Y
+A X
+C Y
+C Z
+C Y
+C Z
+B Z
+C Y
+C X
+A Y
+B Z
+C Z
+C Z
+C Y
+C X
+C Z
+A Y
+C Y
+A Y
+C Z
+B Z
+C Z
+A X
+C Z
+C Z
+C Y
+C X
+C Y
+A X
+C Y
+C Z
+C X
+A X
+B Z
+C Y
+C X
+C Z
+C Y
+A X
+C X
+A Y
+A Y
+C X
+C Z
+C Y
+B Z
+B X
+C Y
+C X
+C X
+C Z
+C Y
+C X
+C Z
+C Y
+A X
+B Y
+A X
+A Y
+C X
+A X
+A X
+A X
+C Y
+B X
+B Z
+C Z
+C X
+C Z
+A Y
+C Y
+C X
+B Z
+A X
+C X
+A Y
+C X
+C X
+C X
+B Z
+C Z
+C X
+B X
+C Z
+C Y
+C X
+C Y
+C Z
+C Z
+C Z
+A X
+C X
+C X
+C X
+B Z
+C Z
+A Y
+C X
+B Z
+B Z
+A Y
+A Y
+B Z
+C X
+C Y
+A X
+C Y
+C X
+C Y
+C Y
+C X
+B Z
+C Z
+C Z
+C Z
+C Y
+A Y
+C Z
+C Y
+A X
+C X
+C Z
+C Y
+A Y
+C Z
+C X
+B Z
+C X
+C Z
+C Z
+C Y
+A X
+A Y
+C Z
+A Y
+C Z
+C X
+C Z
+C Z
+A X
+A X
+C X
+B Z
+B Z
+C Y
+A Y
+C X
+C X
+C Z
+C Z
+A Y
+C Y
+C Z
+A X
+C X
+C Y
+A Y
+C X
+C X
+A Z
+C X
+C Y
+C Z
+C X
+B Z
+C X
+A X
+C Z
+C Z
+A X
+C Z
+C Y
+C Z
+C Z
+A Y
+C X
+C X
+C X
+C Y
+C Z
+C X
+C X
+C Y
+B Z
+A X
+C X
+A Y
+B Z
+A Y
+A X
+A X
+B X
+C Y
+A Y
+C Y
+C Z
+A X
+C X
+A Y
+A Y
+C Z
+C X
+C Z
+C Z
+C Z
+C Z
+A Y
+A Y
+A X
+C X
+A Y
+C Y
+A X
+C X
+C X
+C X
+B Z
+C Z
+B Z
+A X
+C Z
+C Z
+C Y
+C X
+C X
+C X
+C Y
+A Z
+B X
+B Z
+C X
+B Z
+A X
+A Y
+C Z
+B Y
+C X
+C X
+A Y
+C Y
+C Y
+C Z
+C X
+A X
+B Z
+C X
+A X
+A X
+C X
+A X
+C Y
+B X
+C Z
+C Z
+C Z
+C Z
+C X
+C Z
+C X
+C Z
+C Z
+A X
+C Z
+C X
+B Z
+A Y
+C Z
+B Z
+C Y
+C X
+C X
+C Z
+C Y
+C X
+C Z
+C X
+B X
+C Z
+A Y
+C X
+B Z
+A Y
+A X
+C X
+C X
+B Z
+C Y
+C Z
+C X
+C Z
+C Z
+C Z
+B X
+C X
+C X
+C Y
+B Z
+A Y
+C Y
+C Z
+A Z
+A Y
+C Z
+C Y
+C Y
+A X
+B Z
+B Z
+C X
+A X
+C Z
+B Z
+C Z
+C Y
+C Z
+C Y
+A X
+C X
+C Y
+C X
+B X
+C Y
+A Y
+C X
+C Z
+A Z
+C Y
+A X
+C Z
+C Y
+B Z
+C Y
+C Z
+A Y
+C Z
+C X
+A Y
+C X
+C Z
+C X
+B Z
+C X
+A X
+C Z
+C Z
+C X
+C Z
+C X
+C Z
+C Z
+A Z
+A X
+B Z
+B X
+C Z
+C X
+B Z
+C X
+C Y
+C Z
+C Z
+A X
+A X
+C Y
+B Z
+A X
+C X
+C Z
+A Z
+A Z
+C Z
+C Y
+C X
+C Y
+C Z
+A Z
+A X
+A Y
+C X
+C Z
+A Y
+C Y
+A Y
+A X
+C Z
+C X
+C Z
+C X
+B Z
+A Y
+C X
+A X
+C X
+B X
+C X
+A X
+C X
+A X
+C Y
+A Y
+C X
+A Y
+C X
+C Z
+C X
+B Z
+A X
+C Z
+A X
+C Z
+C Z
+C Y
+C Z
+C Y
+C X
+A Y
+C X
+A X
+C Z
+C X
+A Y
+C Y
+C X
+C X
+C Z
+C X
+C Y
+C X
+C X
+C X
+C X
+A Y
+A Y
+A Y
+C Z
+C X
+B Y
+B Y
+A Y
+C Z
+C X
+A Y
+C Z
+C Y
+C X
+C Z
+A X
+C Z
+C Z
+C Y
+A X
+A X
+C Z
+C X
+C X
+C X
+C Z
+C Z
+A Y
+C Y
+A X
+B Z
+C Z
+C Y
+C Z
+A X
+C Z
+C X
+C X
+A Y
+C Z
+C X
+C Z
+C Z
+A Y
+C Y
+C Z
+A X
+C Y
+C Z
+A X
+C X
+A X
+C X
+C Z
+C X
+C Z
+C Z
+C Y
+C Y
+A Y
+C Y
+A X
+C Y
+C X
+C Z
+C X
+A X
+C X
+A X
+A Y
+A X
+C Z
+A X
+C Y
+C X
+A Y
+C Z
+C Z
+C X
+B X
+C Z
+C Y
+A Y
+B Z
+C Y
+C X
+B Z
+C X
+A Y
+A X
+A X
+A X
+C X
+A X
+C X
+C Z
+C X
+A X
+C Y
+A Y
+C X
+C Z
+C X
+C Z
+C Y
+C X
+A X
+C X
+C Y
+A Y
+A X
+B Z
+C Y
+B Z
+C Y
+C X
+A Y
+C X
+C Z
+C X
+C Y
+A X
+C Y
+C Y
+C Z
+C Y
+C X
+C Z
+C X
+C X
+C X
+C Z
+C X
+A Y
+A Y
+C X
+C Z
+B Z
+C X
+C Y
+C X
+C X
+C Z
+C Z
+C X
+C X
+A Z
+A X
+C X
+B Z
+C Z
+C Y
+C Z
+C X
+C X
+C X
+C Z
+C X
+A X
+A X
+C Z
+C X
+A Z
+C X
+A X
+A X
+C Z
+A X
+A Y
+C Z
+A Z
+A Y
+C Y
+C X
+A Y
+A X
+C Z
+C X
+A Y
+B Z
+C Z
+A X
+C Z
+C X
+A X
+A Y
+C Z
+C Y
+C Z
+C Z
+B Z
+C X
+C Z
+C Z
+C Y
+C X
+C Z
+C X
+C X
+B Z
+B Z
+A Y
+B X
+B Z
+C Z
+A Z
+C Y
+C X
+C Z
+C X
+C X
+A X
+C X
+A Y
+B X
+C Z
+C Y
+C X
+C Z
+C Y
+C Y
+C X
+B Z
+C X
+B Z
+C Y
+C Y
+C Y
+C X
+C X
+A X
+A X
+A X
+C Z
+A X
+C Z
+C X
+C Y
+C Z
+C Y
+A Y
+C Y
+A X
+A Y
+C Y
+C Z
+C Z
+A Y
+C X
+C X
+A X
+C Y
+C X
+C Y
+A X
+C X
+C Y
+C Z
+C Z
+B Z
+A Y
+C X
+B Z
+C Y
+A X
+C Z
+C X
+C Z
+B X
+C Z
+C Z
+C Z
+C X
+C Z
+C Z
+C X
+C Z
+C Z
+B X
+A X
+C Y
+C Z
+A Y
+C Y
+C Z
+C Z
+C X
+A Y
+A X
+C Y
+C Y
+A Y
+C Z
+C X
+C X
+C X
+A Y
+C X
+B X
+C Z
+C Z
+C X
+C Z
+C X
+A Y
+A Z
+C Z
+C Z
+B X
+C Y
+A Z
+A Y
+C Z
+C X
+C Z
+C X
+A X
+A Y
+C Y
+A X
+C Z
+C X
+C Z
+B X
+C X
+C Z
+B Z
+C Z
+C Y
+C Y
+A X
+C Z
+C X
+C Y
+C Z
+C Z
+A Y
+C Z
+C Y
+C Y
+A X
+B Z
+C Z
+A X
+C Y
+C Y
+C Z
+A X
+C X
+C Z
+C X
+C X
+C Z
+C Y
+C X
+C Z
+B Z
+C Y
+A X
+A X
+C X
+C Z
+A X
+C X
+B Z
+C Y
+C Z
+C Y
+C X
+C Z
+B Y
+C X
+C Z
+A X
+C X
+A X
+C X
+C Z
+B Z
+C Z
+C Z
+A Z
+C Y
+C X
+A X
+C Z
+A X
+A Y
+C X
+C Z
+C Y
+A Y
+C Y
+C X
+A X
+C X
+C Y
+C X
+C X
+C Z
+C Z
+C X
+C Z
+A X
+A X
+C X
+C Z
+B Z
+A X
+C X
+C Z
+C Y
+C X
+B Z
+C X
+C X
+C X
+B X
+C Y
+A Y
+C Z
+A Z
+A Y
+A Y
+C Y
+B Z
+C Z
+C Y
+C X
+C Z
+C X
+B Z
+B X
+A X
+A Z
+A Y
+C Z
+C Y
+C Y
+C X
+B Y
+C Y
+C X
+C X
+B X
+C Y
+C Z
+B Z
+C X
+C Y
+A Y
+C Z
+C X
+C Z
+A X
+C Z
+A X
+A Y
+C Y
+A Y
+C Y
+C Z
+A X
+C Y
+C Y
+C X
+B X
+C Z
+C X
+C Z
+C Z
+C Z
+C X
+C Z
+C Y
+C X
+C Y
+C X
+C X
+C X
+C X
+A Y
+C X
+A Y
+C X
+C Z
+A X
+A Z
+C Z
+C X
+C X
+C X
+C X
+B Z
+C Z
+C Z
+C Y
+C X
+C Z
+C X
+B Z
+B Z
+C Z
+C Z
+C X
+C X
+C Z
+B Z
+C X
+A Y
+C X
+C Z
+C X
+C Y
+C Z
+C Z
+C X
+C Z
+A Y
+A Y
+C X
+C Z
+C Z
+C X
+C X
+B Z
+C X
+C Z
+C Z
+C X
+C Z
+A X
+C Z
+B Z
+C Z
+A Y
+C Z
+C X
+C X
+B Z
+A Y
+C Z
+A Y
+C Y
+A Z
+C X
+A X
+C X
+A Y
+C Z
+C X
+C Z
+C Z
+C X
+C Z
+A X
+B Z
+C Y
+C Z
+C Z
+C X
+C Z
+B Z
+C Y
+C Z
+C Z
+A X
+B Z
+A X
+B Z
+C X
+C Z
+A Z
+A Z
+C X
+A X
+A X
+B Z
+A Y
+A Y
+A Z
+C X
+C Z
+C Z
+C X
+C X
+C X
+A X
+C X
+C Z
+C Y
+C Z
+C X
+C Z
+C X
+A X
+A Y
+C X
+A X
+C X
+B Z
+B Z
+B X
+C X
+A X
+B X
+C X
+A Y
+C Z
+C Y
+C Z
+C X
+A X
+A Y
+C Z
+B Z
+C X
+B Z
+C Z
+B Z
+A X
+A X
+C Y
+B Z
+C X
+B Z
+A Y
+C Z
+A Y
+C Z
+C X
+A Z
+C Z
+C Z
+B Z
+A Y
+B Z
+C Y
+C X
+A Y
+A X
+A X
+C X
+C Y
+B Z
+C X
+C Z
+C Z
+A X
+A Y
+C X
+C Y
+B Z
+C Z
+C X
+A X
+C Z
+C X
+C X
+B Z
+C Y
+A Y
+A X
+C Z
+B Z
+C X
+C Z
+A Y
+C X
+B Z
+C Y
+B X
+C X
+C X
+C Y
+A Y
+A X
+C Y
+C Y
+C Z
+C Y
+C Y
+C X
+B X
+C X
+A Y
+C Z
+C Z
+A Y
+C Z
+C Z
+C Z
+C Z
+C Z
+C Y
+A Y
+C Z
+A X
+C Y
+C Z
+C X
+C Z
+C X
+A Z
+C X
+A Y
+B Y
+B Z
+A Y
+A Y
+C Z
+C X
+B Z
+B X
+B Y
+C X
+C Z
+B Z
+A X
+C X
+C X
+C Y
+A X
+C Z
+C Y
+A Y
+A X
+A X
+B X
+A Y
+C Y
+C Z
+C Z
+C X
+C X
+A X
+C Z
+A Z
+A Y
+A X
+C X
+A Y
+B Z
+C X
+C Z
+C Y
+C Z
+C Z
+C X
+C Z
+A X
+A Y
+C X
+C X
+C X
+C Z
+C Y
+C Z
+B Z
+C Z
+B Z
+A Y
+A X
+C Z
+C X
+C Z
+C X
+A X
+C Z
+C Z
+C X
+C X
+C Z
+A Y
+A Z
+A Y
+C Z
+C Z
+C X
+C Y
+C X
+C Y
+A X
+C X
+A Y
+B Z
+B Z
+C X
+C X
+C Z
+C X
+A Y
+A Z
+A Y
+C X
+C Z
+A Y
+C Y
+C Z
+B Z
+A X
+C X
+C Z
+C Z
+A Y
+A Y
+A Y
+A Y
+C X
+B Z
+A Z
+B X
+A X
+B X
+C Z
+C Z
+C Z
+B Z
+A Y
+C Z
+C Y
+C X
+C Y
+A Y
+C X
+C Y
+C Y
+A X
+C Y
+C X
+C X
+C X
+C X
+A Y
+A Y
+C X
+C Z
+C Z
+A Y
+C Z
+A Y
+C Z
+C Z
+C X
+C X
+C Z
+C Y
+C Z
+A X
+A X
+C Y
+B Z
+A X
+B Z
+B Z
+C X
+C Z
+C Y
+A X
+C Z
+C Y
+C Z
+C Y
+A Y
+B X
+C Y
+C Y
+C X
+C X
+C Z
+C Z
+C X
+A Y
+C Z
+B Z
+C Y
+C X
+C Y
+C Z
+C X
+A X
+A Y
+C Z
+B Z
+C X
+C Z
+C X
+C Z
+C X
+A X
+C Z
+A X
+B Z
+C X
diff --git a/day02/part1.rb b/day02/part1.rb
new file mode 100644
index 0000000..150ee75
--- /dev/null
+++ b/day02/part1.rb
@@ -0,0 +1,34 @@
+def play(them, us)
+ us + case them
+ when 1
+ case us
+ when 1; 3
+ when 2; 6
+ when 3; 0
+ end
+ when 2
+ case us
+ when 1; 0
+ when 2; 3
+ when 3; 6
+ end
+ when 3
+ case us
+ when 1; 6
+ when 2; 0
+ when 3; 3
+ end
+ end
+end
+
+rounds = $stdin.readlines.map(&:strip).map(&:split)
+
+score = 0
+
+rounds.each do |them, us|
+ ti = {?A => 1, ?B => 2, ?C => 3}[them]
+ ui = {?X => 1, ?Y => 2, ?Z => 3}[us]
+ score += play(ti, ui)
+end
+
+puts score
diff --git a/day02/part2.rb b/day02/part2.rb
new file mode 100644
index 0000000..871a332
--- /dev/null
+++ b/day02/part2.rb
@@ -0,0 +1,35 @@
+def whatplay(them, outcome)
+ case them
+ when 1
+ case outcome
+ when 0; 3
+ when 3; 1
+ when 6; 2
+ end
+ when 2
+ case outcome
+ when 0; 1
+ when 3; 2
+ when 6; 3
+ end
+ when 3
+ case outcome
+ when 0; 2
+ when 3; 3
+ when 6; 1
+ end
+ end
+end
+
+rounds = $stdin.readlines.map(&:strip).map(&:split)
+
+score = 0
+
+rounds.each do |them, outcome|
+ ti = {?A => 1, ?B => 2, ?C => 3}[them]
+ oi = {?X => 0, ?Y => 3, ?Z => 6}[outcome]
+ score += whatplay(ti, oi)
+ score += oi
+end
+
+puts score
diff --git a/day02/test b/day02/test
new file mode 100644
index 0000000..db60e36
--- /dev/null
+++ b/day02/test
@@ -0,0 +1,3 @@
+A Y
+B X
+C Z