diff --git a/input/02 b/input/02 new file mode 100644 index 0000000..dd8db24 --- /dev/null +++ b/input/02 @@ -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/src/bin/02.rs b/src/bin/02.rs new file mode 100644 index 0000000..538b740 --- /dev/null +++ b/src/bin/02.rs @@ -0,0 +1,85 @@ +use aoc2022::*; + +const INPUT: &str = include_str!("../../input/02"); + +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +enum Hand { + Rock, + Paper, + Scissors, +} + +impl From for Hand { + fn from(c: char) -> Self { + match c { + 'A' | 'X' => Hand::Rock, + 'B' | 'Y' => Hand::Paper, + 'C' | 'Z' => Hand::Scissors, + _ => panic!("unknown char: {c}"), + } + } +} + +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +enum Result { + Win, + Draw, + Lose, +} + +impl From for Result { + fn from(c: char) -> Self { + match c { + 'X' => Result::Lose, + 'Y' => Result::Draw, + 'Z' => Result::Win, + _ => panic!("unknown char: {c}"), + } + } +} + +fn main() { + let total: i64 = INPUT + .lines() + .map(|l| l.chars()) + .map(|mut c| { + let elf: Hand = c.next().unwrap().into(); + let me: Hand = c.last().unwrap().into(); + + match (me, elf) { + (Hand::Rock, Hand::Rock) => 4, + (Hand::Rock, Hand::Paper) => 1, + (Hand::Rock, Hand::Scissors) => 7, + (Hand::Paper, Hand::Rock) => 8, + (Hand::Paper, Hand::Paper) => 5, + (Hand::Paper, Hand::Scissors) => 2, + (Hand::Scissors, Hand::Rock) => 3, + (Hand::Scissors, Hand::Paper) => 9, + (Hand::Scissors, Hand::Scissors) => 6, + } + }) + .sum(); + solved_level_1(total); + + let total: i64 = INPUT + .lines() + .map(|l| l.chars()) + .map(|mut c| { + let elf: Hand = c.next().unwrap().into(); + let result: Result = c.last().unwrap().into(); + + match (elf, result) { + (Hand::Rock, Result::Win) => 8, + (Hand::Rock, Result::Draw) => 4, + (Hand::Rock, Result::Lose) => 3, + (Hand::Paper, Result::Win) => 9, + (Hand::Paper, Result::Draw) => 5, + (Hand::Paper, Result::Lose) => 1, + (Hand::Scissors, Result::Win) => 7, + (Hand::Scissors, Result::Draw) => 6, + (Hand::Scissors, Result::Lose) => 2, + } + }) + .sum(); + solved_level_2(total); +}