From 79ff128e3306929b2b51011511f0e3e955deb68f Mon Sep 17 00:00:00 2001 From: Dory Date: Wed, 6 Mar 2024 22:36:54 -0800 Subject: [PATCH] d2p1 --- day2/Cargo.lock | 7 + day2/Cargo.toml | 8 + day2/input.txt | 2500 ++++++++++++++++++++++++++++++++++++++++++++++ day2/src/main.rs | 33 + day2/test.txt | 4 + 5 files changed, 2552 insertions(+) create mode 100644 day2/Cargo.lock create mode 100644 day2/Cargo.toml create mode 100644 day2/input.txt create mode 100644 day2/src/main.rs create mode 100644 day2/test.txt diff --git a/day2/Cargo.lock b/day2/Cargo.lock new file mode 100644 index 0000000..63c2f60 --- /dev/null +++ b/day2/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day2" +version = "0.1.0" diff --git a/day2/Cargo.toml b/day2/Cargo.toml new file mode 100644 index 0000000..8aa34bb --- /dev/null +++ b/day2/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "day2" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/day2/input.txt b/day2/input.txt new file mode 100644 index 0000000..d9dd32c --- /dev/null +++ b/day2/input.txt @@ -0,0 +1,2500 @@ +A X +A Z +A Z +A X +A X +B X +C Y +B X +A Z +A X +A X +A X +A X +B X +A X +B X +A Z +A Z +A X +A X +A Z +A Z +A Z +A X +A Z +A X +C Y +C Z +A X +B X +A X +A X +A X +A Z +B X +A X +B X +C Y +A X +A Z +A Y +A X +A Z +A X +A Z +B X +A X +A Z +B X +A X +A Z +A X +A Z +A Z +A X +B X +B X +B X +B Z +A Z +B Z +A X +A X +A Z +A X +B Z +B Y +A Z +B X +A Y +B X +C X +B Z +B X +C Y +A Z +A X +A X +C Y +B X +A X +A Y +A X +A X +A Y +A Z +C Z +A Z +B X +B X +A X +B X +A X +A X +B Y +B X +A Z +B X +B X +A X +B Z +C Z +A Z +C Z +B X +B X +A Z +A X +A X +B X +A Z +B X +A Z +A X +A X +A X +B X +B X +B X +B X +A X +A Y +A X +B X +A Z +A X +A X +A X +C Y +A X +B X +A X +A Z +A X +B X +A Y +B X +C Z +A Y +A X +B Y +A X +B X +A X +A X +A X +B X +A X +A X +A Z +A Z +A X +C Y +B X +B X +A Z +B X +B Y +C Y +A X +A X +B Y +A X +B Y +B X +B X +A X +A Z +B X +B X +A Y +A X +C Y +C Y +C Y +A X +B X +A X +A X +A X +B X +B X +C Y +A X +A Z +A Z +A X +B X +A Z +A Z +A X +B X +A X +A Z +A X +C Z +B X +A X +C Y +C Y +A Z +B X +B Z +C Y +B X +A Y +B Y +A Z +A X +A X +B X +B Y +A Z +A X +B X +A X +C X +C Y +A X +B X +A Z +A X +B X +A X +C Y +C Y +C Y +A X +A X +A Z +A X +C Y +A Z +B Y +A X +C Y +B Z +B X +B X +A Z +B X +A Y +C X +A X +B X +A Z +C Y +A X +A Z +C Z +A X +C Y +B X +C Y +C Z +A Y +A Z +C Y +A X +A X +A X +A Y +B X +B X +C Y +C Y +A X +A Z +C Y +B Z +B X +C Z +B X +B X +C Z +A X +A X +B X +B X +A X +A X +B X +B X +B X +C Y +A X +A X +A X +A X +B X +A X +A X +B X +B Z +A X +B X +A X +C Y +B Y +A X +B X +A Y +B Z +B X +A X +B Z +B X +A Y +A X +B X +A X +A Z +B X +A X +A X +C Z +A X +B X +A X +B Y +A Z +A X +B X +A X +A Z +B X +B X +B Y +B X +A X +C Y +A X +A X +B X +B Y +A X +A X +A X +C Z +C Z +B Y +B X +B Z +A X +A Y +A X +C Y +B X +A X +A X +A X +A Z +C Y +A X +A X +C Y +A X +A X +A X +A Z +A Y +A X +A Y +C Z +A Z +A X +B X +A Z +C Z +C Y +A Z +A Z +C Y +C Z +C Z +A X +B X +B X +B Z +C Y +A X +A X +A X +A Z +A X +B X +B X +C X +A X +A X +B X +A Y +A X +A X +B Y +C Z +A X +A X +A Y +B X +B X +B X +C Z +A Z +A Y +B Y +A X +B X +B X +B X +B Z +A Y +B Y +A Z +A Z +C Z +B X +A X +A Y +A Y +C Y +B Y +A X +A X +A X +A X +B Y +A X +A Y +A X +A Z +B X +B X +A Y +A X +A Y +A Y +A Z +B X +B X +A Z +B X +A X +A Z +A Z +B X +A Z +A X +A Y +A Z +A X +A Z +B Y +A X +C Y +B X +C X +C Y +B Z +C Y +C Y +A X +A X +A Y +B X +C Z +B X +C Y +A X +A Z +C Y +A X +A Z +A Z +B Y +A X +A X +B X +B Y +A X +A X +B X +A X +B X +A X +B X +A X +B Y +A Z +B X +B X +B X +B X +A Y +A X +A Y +A Y +C Z +B Z +A X +B Y +A X +C Z +B X +A X +A X +A X +A X +A X +C Z +C Z +C Z +A X +C Y +A X +C X +C Z +A X +B X +A Z +A Z +A Z +A X +A Z +A Z +B Z +A X +B X +A Z +C Y +A X +A Z +A Z +A Z +B Z +B X +A X +B X +B X +B X +B X +B Y +B X +A X +A X +A Z +A Z +A Z +B Y +A X +A X +A Y +B X +B X +A Z +A X +B X +A X +A X +A Z +C Y +A X +B X +A X +B X +A X +B X +A Z +B X +A X +A Z +A Z +B X +A Y +A X +A Z +C Y +A X +A X +A X +B Y +B X +A Y +A Z +C X +B X +C Y +A X +B X +C Z +C Z +A X +B X +B X +B Y +B X +B X +A X +A Z +B Z +B X +A X +B X +B X +B X +A Z +A X +A X +A Z +B Y +B Z +A X +A Z +A Z +A Z +A X +A X +A X +A X +A X +A X +B X +A Z +B Z +A X +A Z +C Y +A Z +A X +A Y +A Y +B X +B Y +A Z +A X +B X +B Y +A X +B X +A X +B X +B X +C Y +A Z +B X +A X +B X +A X +A Z +A X +A Z +A X +A X +A X +B X +A Y +A X +A X +B X +C Z +B X +A X +C Y +A X +B X +A Z +B Y +B Z +A X +A X +A X +C Y +A X +A X +A X +B X +C Z +A Z +A X +C Z +B X +A Z +A Y +C Y +C Y +A Z +B X +C Z +C Z +A X +A X +A X +A X +A X +B X +C Y +A Z +A X +B X +A Z +A X +A Y +A X +B Z +A X +B X +A X +A X +A X +A Y +B X +C Y +A X +A Z +C Y +A Z +A X +A Y +A X +A Z +A X +A Y +C Y +A Y +A Z +A X +A X +A X +A Z +A X +B X +A Y +A X +B X +A X +A X +B X +A X +B X +C Z +B X +A Z +A Z +C Y +B Y +B X +A Y +B X +B X +A Y +A X +C X +C Y +B X +A X +C X +C Z +A X +A Z +B X +B Z +C Y +A X +C Y +A Y +B X +B Y +A X +C Y +A Z +A X +A X +C Y +C Y +A X +A Z +B X +A Y +B X +A Z +A Z +A Z +A Z +A X +C Z +B X +B Y +A X +A Y +A X +B X +C Y +C Z +B Z +B X +B Z +A X +A Z +C Y +A X +B Y +A X +A Z +A X +C Z +A X +A Y +B Y +A X +A X +A X +A Z +B X +B X +B X +A X +C Y +C X +C Y +C Z +A X +A X +A Z +A Z +A X +A X +A X +A X +A X +A X +A X +C Z +A X +B X +A Z +B X +B X +B X +A Y +A X +A X +B X +A X +B X +A Z +C Y +B Y +C Z +B Y +B X +B X +A X +C Z +A X +B Y +C Y +B Y +A Z +A Y +A X +A X +C Y +B X +B X +A Z +A X +C Y +C Y +A Y +A Z +B X +C Z +A Z +C Y +A X +A X +A Z +B X +A X +A X +A Z +B X +C Z +A X +A X +B X +B Y +A Z +A X +B X +A X +C Y +B X +B X +B Z +C Y +A X +B X +A X +A X +A Y +A Y +A Z +B X +A Z +B Y +B X +A X +B Y +A X +A X +A Z +A X +B X +A Z +A X +A Z +B X +B X +B X +B Z +C Y +A Y +A Y +A Z +A X +B X +B X +A X +A X +B Y +A X +B X +A Z +B Z +B X +C Y +A Z +A X +C Z +A Y +A Y +B X +A Y +C Z +A Z +A X +B X +A Z +C Y +C X +B X +B Z +A X +A Y +A X +B X +A X +A X +C Y +B Z +B Z +B Y +C Z +C Y +B X +B Y +C Y +A Z +B X +A X +A X +A X +A X +A X +A X +B X +B X +B X +A X +C Y +A X +A Y +A Z +B Y +C Y +A Z +A X +A X +A Z +A Y +B X +A Y +A X +A X +C Z +A X +A X +B X +A X +A Z +A Z +A X +A X +A X +B X +A X +A X +A X +A Z +A X +B X +B Z +C Y +A X +A Z +B X +B X +B X +A X +B X +A X +B X +A Y +B Y +C Y +A X +C Z +B Z +A Z +A X +A X +A Z +A Y +A Z +A X +A X +B X +A X +A X +A Z +C Z +B X +B Y +A Z +B X +A Z +A X +A X +A X +C Y +C Y +A Z +A X +A X +B Y +A Y +A X +B Z +B X +B Z +B X +B Y +B X +A Y +A Z +C Y +B X +A X +A X +B X +B Z +A X +C X +A X +A X +A X +A X +A X +A X +B X +A X +C Z +A Y +B X +B X +B Z +A X +B X +B Z +B X +A Z +A X +B X +A X +A Y +B X +A Z +C Z +B X +C Z +A X +A X +C Y +A Z +C Y +A Z +A X +B X +A X +C Y +A Z +A X +A X +B X +B X +A Z +B Y +B X +A X +A Z +A X +B X +A X +A Z +A Z +A Y +A Y +A X +C Z +A Z +A Z +A X +B X +A Y +B Z +A X +A Z +A X +C Z +B X +A Z +C Z +A X +C X +A Z +A X +A X +B Z +A X +B X +A X +B X +C Z +A X +B X +A Z +B X +C Y +B X +A Z +A X +A Y +C Z +A Z +B X +A Z +A Y +A Z +B X +A X +B X +C Y +B X +A X +C Y +A X +A X +B Y +A X +B Y +A X +A X +A X +B X +A X +A X +C Z +A X +B X +A Y +A Y +B Z +A Z +A Y +A X +B X +B Y +A Z +B Y +A X +A Z +A X +A Z +B X +A X +A X +B X +A Y +B X +B X +A X +A Z +B X +A Y +B X +A Z +B X +B X +B X +B X +A Y +A Z +B X +B Y +B X +C Y +C Y +C Y +B X +B X +A Y +A X +B X +B X +A X +B X +A X +A Z +A Z +A Z +B X +A X +A X +A Y +A X +A X +C Y +B X +C Y +A X +A Y +C Z +A X +B X +A Z +A X +A X +A Z +A X +B Z +A X +A Z +A X +C Y +A Y +C X +A X +C Y +B X +B X +A Z +A X +A X +A X +B X +A X +C Y +C Y +A Y +A X +C Z +A X +B X +B Y +A Z +A X +B X +B X +A X +A Z +C Y +B X +A Y +A X +A Z +B X +A X +A Z +B X +A Y +B Z +A Z +C Z +C Y +A Z +A X +A X +A Z +B X +A X +B X +A X +A X +B X +A Z +A X +C Z +B X +A Z +B Y +A Z +A X +A Z +B X +A X +A X +A Y +B X +C Z +B X +A X +A X +A Z +B X +C X +B X +B X +A Z +B Y +B X +A Z +C Y +A X +A X +B X +B X +A X +B X +A Z +A X +A X +A Z +A X +A X +B X +B X +A X +A Z +A Y +A X +A X +C Y +B X +A X +B X +C Z +A Z +B X +A X +A X +A X +C Y +A X +A X +A X +A Z +B Y +B X +A X +A X +A Z +B X +C Z +B X +A Z +A Z +A X +A Y +B Y +B X +A Z +A Z +A X +A Y +B X +A X +A Z +B X +A Y +A Z +A Z +B X +C Z +A X +A X +B X +B X +A X +A Y +A Y +C Z +B X +A X +A Z +C Y +B X +A Z +A X +B X +B Y +A X +B X +A Y +B X +A X +A Z +B X +B X +C Y +B X +B X +B Y +A X +A X +B X +B X +A X +B X +C Y +A X +A X +A Z +A Z +B X +A Y +B X +B Y +A X +A Z +A X +A Z +A X +B Y +B X +B X +A X +B X +A X +B X +B X +A X +B X +C X +A Z +A Z +A X +A X +A Z +A X +B X +A X +A X +A Z +A Z +A X +A X +B X +C Y +A Z +A X +A X +A Y +A X +B Z +C Z +A Z +B X +A X +B X +A X +B X +B X +A Y +B Y +A X +B X +B Y +C Y +B Z +B Y +B Y +A Z +A X +A Y +A X +A Z +A Z +A X +A X +A X +A X +A Y +C Y +A X +A Y +A Z +A Z +B X +A X +A X +A Z +B Y +B X +B X +A X +B Z +B Z +A Y +B X +A Y +A X +B X +C Z +A X +A Y +B X +A X +B Z +C Y +A Z +A X +A Z +A X +A X +A X +A X +C Y +B X +A X +A X +C Y +C Y +A Z +C Y +A Z +A Y +C X +B X +C Y +A Z +A X +B X +B Z +B X +B X +B X +B X +B X +A X +A Z +B X +A Y +A X +A Y +B X +A X +A X +A X +B Z +B Z +B X +B X +A Y +A X +B Y +B X +B Y +C Y +A X +A X +C Y +A X +B X +B X +B X +C Z +B X +A Z +B X +B X +A X +B Z +A Z +A Z +A X +A Z +A Y +A Z +B X +A X +B X +A X +A X +A X +B X +A X +B X +A X +A X +B X +A Z +A X +A Z +C Y +A X +B X +A X +A X +B X +B X +C Z +A X +A X +B X +A X +A Y +A X +A X +A Z +A X +A X +B X +A X +A X +A X +A Y +C Z +A Z +A Z +A X +B X +A Z +A X +A X +A X +C Y +C Y +A Z +C Y +B X +A X +B X +B X +A Z +A Z +A Y +B X +A Z +A X +A Z +A X +A X +A X +A Z +A Z +B X +A X +A X +B X +B X +A Z +B X +A X +A X +B X +B X +B X +A X +A X +A Z +A X +A X +B Y +B Y +C Y +A Y +A Y +B X +B X +C Y +A X +B X +A X +A X +A Z +A Y +A X +B X +A X +B X +A X +A Z +A X +C Y +B X +B X +A X +B X +A X +A X +A Z +C Y +B X +B X +A X +A X +A Z +A Z +B Y +A X +B X +A Y +C Z +B X +A X +A Z +B Y +A Z +B X +B X +B X +A X +A Z +A Z +B Y +A Y +B X +B Y +A Y +A Z +A X +A X +B X +B X +A Y +B X +A X +A X +C Y +B X +A X +C X +C Z +A X +A X +C Y +C Z +A Z +A X +C Y +C Y +C Y +A X +A Y +A Z +A X +C Z +A X +C X +B X +B Y +B Z +A X +A X +A X +A Z +B X +B X +C X +A X +C Z +C Y +A X +A X +B X +B X +A X +A X +A X +A Z +A Z +B X +A Z +B Y +A Y +A Y +A Z +B X +A Y +A X +A X +B X +A Z +B X +A Y +A X +B X +A X +B X +A X +B X +B Z +A Z +A Y +A Z +A X +B X +B X +C Y +B X +A X +B X +A Y +B X +B X +C Y +B X +A Z +A Z +C Y +A X +B X +B X +A X +B X +A Z +A X +A X +A Z +A Z +C Z +A X +A X +A X +A X +A X +A X +A Z +C Y +A X +C Y +A X +B X +C Y +B X +A Y +B X +B X +B X +A X +A X +A X +C Y +A Z +A Z +B X +A X +A Z +B X +B X +A X +A X +B Z +A X +B Z +B X +A X +A X +A X +B X +A X +C Y +A Y +A X +A X +B X +A Y +A X +C Y +C Y +B X +B X +A X +A X +C Y +B Y +C Y +A X +B X +A Y +B Z +B X +B X +A Y +B X +A Z +C Y +B X +B X +B Y +A X +A X +A X +C Y +B X +A Y +B X +A Z +B Y +A X +A X +A X +A X +A X +A X +B X +C Z +B X +B X +A X +A X +C Y +A X +A X +A X +A X +B Z +B X +A Z +B Z +C Z +C Y +B X +B X +C Z +A Z +A Y +A Z +A Y +C Z +A X +A X +A Z +A X +A Z +A X +B Z +B X +B X +C Z +B X +C Y +C Y +B X +A X +A X +A X +B Y +A X +C Y +B Y +C Y +B Y +A Z +B X +A X +A Z +B X +B Z +A Z +A X +A X +A Y +A X +A X +A Z +B X +B X +B X +B X +B X +A X +A X +A X +A Z +A Z +A Y +A X +A Z +A Z +B X +A X +B X +B X +A Z +B Y +A X +A X +A X +A X +B X +A Y +A X +C X +A Z +A X +C Z +C Y +B X +A Z +A Z +B X +C Y +A X +A Z +A X +B Y +C Y +A X +A X +A Z +A X +C Y +A Z +A X +A X +A X +C Y +B X +A X +B Y +A Z +A X +A Z +B X +A Z +A Z +A X +A X +C Z +B X +A Z +A X +B Z +A Z +A Z +B X +A X +A Z +A Y +A X +A Z +A Z +C X +C Z +B X +B X +A Z +A X +B X +A X +A X +A X +A Z +B X +A Z +A X +B X +A X +A X +C Z +B X +C Y +A X +B X +A Z +A Z +A X +B Z +B X +A Z +A Z +A X +C Y +A X +B X +C Y +B X +B X +A Z +B X +A Z +C Y +B X +A Y +B X +A Z +B Z +A Z +B X +A X +B Z +A X +A Y +B Z +C Y +C Y +B X +A X +A X +A X +A X +B Z +A X +A X +A X +C Y +C X +B Y +B X +B X +B X +A Y +A X +A Z +A X +B X +A Z +C Y +A X +A Z +A Z +A X +A X +A X +A X +A Z +A X +A X +B X +C Z +B X +C Z +B Y +B X +A Z +A Z +A Z +B Y +A Y +A Z +B X +C Y +A X +B X +A Z +C Y +A Y +B X +A X +A Y +A X +A Z +B X +A Z +B Y +B X +A X +B X +A X +A X +A X +A Y +B X +A Y +A X +B X +A X +A X +C Y +A X +A X +B Z +A Z +A Z +A X +C Y +B X +B X +C Y +A Z +C Y +A X +A X +B X +B X +A X +A Z +B Y +B X +A Z +B X +A X +B X +A Z +C Y +A X +B X +A X +A X +A Z +A X +B X +C Z +A X +A X +A Y +B X +A Z +B X +B X +B Y +A X +A Z +A X +A Z +B X +B X +A X +A X +B Z +A X +C Y +B X +A X +A Z +A Z +B X +C Y +C Y +B Y +A Z +C Z +A X +B X +A X +A X +B Y +B X +A X +A X +A Y +A Z +B X +A X +A X +A Z +A X +A X +B X +B X +A Y +A X +B X +A Z +B Z +B X +A Z +A X +A Z +B X +C Y +A X +A X +B X +A Z +B X +A Z +C Z +A Z +A X +C Y +A X +B X +B Z +A X +B X +C X +A X +B Y +A X +A X +C Y +A X +B Y +A X +A X +A X +B X +A X +B X +A Z +C Y +A X +C Z +A X +B X +A Z +A X +C Z +C Z +A X +A Y +A Z +A X +B X +B X +A Z +B X +A X +B X +B Y +B X +B X +C Z +A Y +A X +A Z +B Z +A X +A Z +A Z +A Y +B X +A Y +A X +A X +B X +A Z +B Z +A X +A Z +A Z +A Z +C Y +A X +B Z +B X +A Z +B X +A Z +A Y +A X +C Z +C X +A Y +A X +A Z +A X +A X +A Z +A Y +A Z +A Y +A X +C Y +B X +A Z +A X +A X +C Y +A X +A X +B Z +A Z +C Y +A X +A X +A X +B X +C Y +A X +A Y +B X +A X +A X +B Y +A Z +A X +A X +B X +A Z +A Y +C Y +C Z +C Y +A X +C Y +C Y +A X +A Y +C Y +B X +A X +B X +A X +A X +B X +A X +A Z +C Y +C Y +B X +A X +B X +C Z +C Y +B X +A X +A X +A Y +A X +A Y +A Z +B X +A Z +A Z +A X +A X +B X +C Y +B X +A Z +A X +A X +A X +B X +B Z +B X +B X +B X +A Z +A X +B Z +A X +B Z +A X +B Y +C Z +B Y +C Z +B Y +B X +A X +A X +C Y +B X +B X +A X +B Z +A Z +A Z +A X +A X +A X +B X +B X +B X +C Y +A X +B X +B X +B Z +B X +A Z +C Y +A X +C Z +A Z diff --git a/day2/src/main.rs b/day2/src/main.rs new file mode 100644 index 0000000..44f14c9 --- /dev/null +++ b/day2/src/main.rs @@ -0,0 +1,33 @@ +use std::env; +use std::fs::File; +use std::io::BufReader; +use std::io::BufRead; + +fn score(line: String) -> i64 { + match line.trim() { + "A X" => 1 + 3, + "A Y" => 2 + 6, + "A Z" => 3 + 0, + "B X" => 1 + 0, + "B Y" => 2 + 3, + "B Z" => 3 + 6, + "C X" => 1 + 6, + "C Y" => 2 + 0, + "C Z" => 3 + 3, + _other => 0, + } +} + +fn main() { + let args: Vec = env::args().collect(); + let input = &args[1]; + let reader = BufReader::new(File::open(input).expect("where file?")); + + let mut sum = 0; + for line in reader.lines() { + sum += score(line.unwrap()); + } + + println!("Sum: {}", sum); +} + diff --git a/day2/test.txt b/day2/test.txt new file mode 100644 index 0000000..eef2e99 --- /dev/null +++ b/day2/test.txt @@ -0,0 +1,4 @@ +A Y +B X +C Z +