diff --git a/advent-of-code-2022.csproj b/advent-of-code-2022.csproj index 7032e57..7acf192 100644 --- a/advent-of-code-2022.csproj +++ b/advent-of-code-2022.csproj @@ -73,6 +73,8 @@ + + diff --git a/inputs/02.txt b/inputs/02.txt index 36084d3..d86ab0b 100644 --- a/inputs/02.txt +++ b/inputs/02.txt @@ -1,1000 +1,2500 @@ -forward 9 -down 9 -up 4 -down 5 -down 6 -up 6 -down 7 -down 1 -forward 6 -down 4 -forward 8 -up 5 -forward 9 -down 1 -down 4 -up 4 -up 5 -up 4 -down 1 -forward 8 -down 1 -forward 2 -forward 8 -down 9 -forward 2 -down 6 -down 2 -up 8 -down 6 -forward 9 -forward 7 -down 6 -forward 3 -down 2 -forward 4 -down 5 -up 2 -down 9 -down 8 -up 5 -forward 5 -forward 4 -up 9 -forward 9 -down 8 -forward 8 -forward 2 -up 8 -down 7 -forward 8 -down 3 -forward 6 -up 9 -forward 9 -forward 4 -forward 9 -forward 6 -down 4 -up 2 -forward 4 -up 5 -up 6 -forward 9 -down 3 -forward 4 -forward 9 -down 1 -forward 1 -up 6 -up 4 -forward 7 -up 7 -up 3 -forward 2 -forward 8 -forward 6 -down 4 -forward 2 -forward 3 -down 7 -down 5 -down 8 -down 5 -forward 1 -down 8 -down 2 -down 8 -down 3 -forward 4 -forward 8 -forward 9 -down 1 -forward 8 -down 1 -down 6 -down 7 -down 7 -forward 5 -forward 3 -down 2 -down 1 -forward 2 -forward 1 -down 6 -down 4 -up 5 -up 9 -down 4 -forward 9 -down 2 -down 5 -down 4 -down 2 -forward 2 -forward 4 -forward 6 -forward 6 -forward 3 -down 6 -up 5 -forward 8 -forward 3 -down 9 -down 3 -forward 4 -forward 2 -down 9 -down 8 -down 7 -down 3 -forward 2 -down 7 -down 3 -down 5 -forward 6 -up 9 -up 8 -forward 5 -down 6 -down 1 -down 6 -down 5 -forward 7 -down 2 -forward 8 -forward 7 -forward 2 -forward 8 -up 6 -forward 5 -down 2 -down 5 -up 8 -up 6 -forward 1 -down 4 -up 5 -up 5 -up 5 -forward 4 -up 1 -forward 3 -down 9 -down 6 -up 1 -forward 1 -forward 2 -forward 1 -forward 4 -forward 6 -forward 6 -up 7 -down 7 -down 7 -down 9 -forward 9 -down 1 -down 5 -down 1 -down 7 -down 1 -up 6 -forward 2 -down 4 -up 3 -up 2 -forward 6 -up 4 -down 1 -down 5 -forward 9 -up 4 -up 3 -forward 3 -up 7 -forward 2 -forward 5 -down 9 -forward 7 -forward 4 -down 1 -up 2 -forward 4 -up 4 -down 2 -forward 4 -up 5 -up 1 -down 9 -down 3 -up 6 -forward 7 -up 7 -forward 2 -down 4 -up 3 -up 3 -forward 4 -up 5 -down 3 -up 8 -forward 6 -forward 8 -down 1 -down 9 -down 7 -forward 7 -forward 5 -forward 2 -up 9 -forward 3 -forward 1 -down 7 -down 6 -forward 5 -up 3 -forward 6 -down 4 -forward 9 -down 7 -forward 9 -down 9 -down 5 -down 6 -down 2 -down 2 -down 8 -down 3 -down 9 -forward 5 -up 6 -forward 1 -down 3 -down 2 -up 1 -up 6 -forward 3 -down 6 -down 6 -up 9 -up 8 -forward 2 -down 7 -forward 5 -up 9 -down 7 -down 3 -forward 2 -forward 2 -up 9 -forward 1 -forward 7 -down 9 -forward 6 -forward 7 -up 8 -down 7 -down 5 -down 3 -up 6 -down 5 -forward 6 -down 9 -down 6 -up 9 -down 7 -forward 2 -down 5 -up 4 -down 4 -down 8 -forward 7 -down 9 -forward 8 -forward 6 -down 7 -down 1 -forward 5 -up 6 -forward 4 -up 7 -up 4 -up 5 -forward 9 -forward 5 -forward 4 -down 6 -down 5 -forward 2 -forward 7 -down 8 -forward 3 -up 5 -down 2 -up 3 -forward 4 -up 5 -up 2 -forward 4 -forward 1 -forward 1 -forward 4 -forward 4 -down 2 -forward 1 -forward 1 -up 5 -up 7 -down 8 -down 4 -forward 2 -forward 2 -down 3 -forward 7 -down 8 -up 3 -forward 2 -down 2 -forward 3 -up 2 -forward 3 -up 6 -down 7 -up 7 -down 3 -up 9 -forward 3 -forward 7 -down 7 -up 9 -down 6 -down 2 -forward 8 -forward 8 -up 7 -down 6 -forward 2 -forward 1 -down 4 -up 2 -forward 6 -up 7 -down 5 -up 1 -forward 3 -forward 9 -up 4 -forward 5 -forward 8 -down 3 -up 5 -forward 9 -down 6 -up 9 -forward 5 -down 4 -down 1 -down 6 -up 9 -up 2 -forward 5 -down 1 -up 3 -down 5 -forward 2 -down 4 -forward 5 -down 6 -down 4 -down 4 -forward 1 -down 7 -down 2 -forward 4 -forward 5 -up 9 -down 6 -down 2 -forward 7 -up 8 -down 9 -forward 7 -down 5 -down 2 -down 8 -down 8 -up 4 -up 3 -down 3 -down 7 -forward 4 -forward 6 -down 4 -up 7 -forward 4 -forward 4 -forward 1 -down 3 -down 2 -forward 7 -forward 2 -up 9 -down 7 -up 7 -forward 2 -forward 6 -forward 9 -down 3 -forward 7 -forward 5 -up 5 -up 1 -forward 6 -forward 4 -down 2 -forward 3 -forward 9 -down 1 -forward 6 -forward 7 -forward 1 -up 7 -up 4 -forward 7 -forward 8 -down 7 -down 8 -down 9 -forward 7 -down 9 -up 6 -down 7 -up 3 -down 7 -forward 4 -forward 9 -forward 1 -down 4 -forward 1 -up 4 -up 4 -forward 9 -forward 8 -up 4 -down 2 -forward 4 -forward 2 -forward 8 -down 2 -up 6 -down 4 -forward 6 -forward 5 -down 2 -forward 9 -down 5 -forward 5 -down 3 -down 2 -up 9 -down 3 -forward 6 -forward 6 -up 9 -down 1 -forward 4 -up 3 -forward 1 -forward 3 -forward 3 -down 6 -down 2 -forward 8 -down 4 -forward 8 -forward 8 -forward 5 -up 6 -forward 3 -down 1 -down 8 -forward 3 -forward 4 -down 2 -down 7 -up 8 -forward 3 -forward 8 -up 2 -forward 6 -down 4 -forward 9 -forward 5 -down 1 -forward 6 -forward 2 -down 3 -up 4 -down 7 -down 2 -up 2 -forward 7 -down 6 -down 2 -up 5 -up 5 -down 9 -down 7 -down 3 -down 1 -down 9 -forward 4 -down 4 -forward 7 -forward 8 -forward 4 -up 6 -forward 6 -forward 9 -down 2 -forward 4 -down 8 -down 4 -forward 5 -forward 2 -up 4 -down 3 -up 8 -up 1 -down 1 -forward 9 -up 3 -up 1 -forward 1 -forward 7 -forward 1 -down 7 -forward 7 -forward 7 -down 7 -forward 4 -up 6 -forward 3 -down 1 -up 1 -up 8 -forward 5 -forward 2 -up 4 -forward 7 -down 2 -down 3 -down 8 -up 7 -up 5 -forward 8 -down 5 -down 3 -down 9 -forward 6 -forward 4 -down 9 -up 5 -forward 3 -up 7 -up 9 -up 1 -forward 1 -forward 3 -forward 1 -up 8 -up 4 -down 1 -down 8 -down 3 -down 1 -down 1 -down 9 -forward 4 -down 3 -forward 9 -forward 2 -down 1 -forward 9 -up 7 -forward 6 -up 4 -forward 8 -forward 3 -down 2 -down 2 -down 2 -up 5 -forward 1 -up 1 -forward 7 -down 1 -forward 1 -down 8 -up 4 -up 1 -forward 7 -down 8 -down 9 -forward 2 -forward 1 -up 3 -forward 4 -up 8 -forward 5 -down 2 -forward 6 -forward 8 -up 9 -forward 2 -down 7 -down 4 -up 3 -forward 1 -forward 6 -forward 9 -down 1 -down 8 -down 1 -down 2 -forward 3 -forward 9 -forward 2 -forward 4 -forward 7 -forward 3 -up 8 -up 9 -forward 3 -forward 6 -down 5 -up 6 -down 8 -forward 5 -up 4 -up 9 -forward 6 -forward 3 -up 9 -forward 8 -forward 5 -forward 9 -forward 7 -up 6 -forward 3 -forward 1 -up 4 -forward 9 -forward 8 -up 1 -up 2 -down 3 -down 4 -down 9 -down 4 -down 5 -down 6 -down 2 -down 5 -forward 6 -forward 4 -up 2 -up 7 -down 5 -down 9 -forward 3 -down 5 -forward 6 -down 7 -forward 1 -forward 7 -forward 9 -forward 7 -forward 4 -forward 4 -up 1 -up 4 -down 6 -up 2 -up 1 -down 4 -forward 2 -down 4 -forward 6 -down 3 -up 6 -down 2 -up 3 -forward 1 -forward 9 -forward 3 -up 9 -forward 7 -forward 5 -forward 4 -down 5 -down 9 -forward 6 -forward 7 -up 1 -forward 7 -forward 2 -forward 2 -forward 5 -forward 6 -down 3 -down 7 -down 3 -down 4 -down 6 -down 1 -forward 2 -down 8 -forward 4 -forward 7 -up 1 -down 4 -down 1 -down 2 -down 3 -up 3 -forward 9 -forward 2 -down 8 -up 3 -forward 8 -forward 7 -up 8 -down 8 -forward 2 -down 9 -down 9 -down 5 -forward 1 -forward 3 -forward 6 -up 1 -up 2 -forward 1 -down 3 -up 6 -forward 2 -forward 8 -forward 2 -down 3 -forward 8 -forward 9 -down 7 -down 3 -down 2 -down 9 -down 3 -up 6 -forward 9 -forward 5 -forward 1 -forward 9 -down 9 -up 2 -down 1 -up 6 -forward 6 -down 3 -forward 6 -forward 3 -forward 5 -forward 4 -up 2 -up 4 -up 6 -forward 1 -forward 6 -up 6 -up 4 -up 7 -down 8 -down 5 -up 1 -up 1 -down 5 -forward 5 -down 9 -forward 8 -down 3 -up 4 -down 9 -down 1 -forward 2 -forward 9 -down 3 -down 8 -down 5 -down 6 -forward 7 -forward 1 -down 9 -down 7 -forward 8 -forward 2 -up 1 -up 1 -forward 7 -up 1 -forward 2 -down 9 -up 4 -forward 5 -down 1 -up 1 -down 8 -down 3 -up 1 -down 8 -down 7 -down 2 -forward 9 -down 5 -forward 2 -up 2 -up 6 -up 4 -forward 6 -up 5 -forward 5 -forward 4 -forward 8 -down 8 -down 6 -down 1 -down 3 -down 6 -forward 8 -up 1 -up 5 -down 4 -forward 4 -down 9 -forward 4 -up 6 -down 7 -forward 4 -down 3 -down 4 -forward 1 -forward 3 -down 1 -down 7 -up 8 -down 3 -down 4 -down 3 -forward 3 -down 8 -forward 8 -down 3 -down 7 -forward 2 -up 2 -forward 7 -down 9 -up 7 -forward 5 -down 2 -down 5 -up 4 -up 8 -forward 8 -forward 9 -forward 8 -down 8 -forward 6 -forward 9 -forward 6 -forward 8 -forward 6 -forward 8 -forward 2 -down 7 -down 3 -forward 7 -down 4 -down 5 -up 1 -forward 5 -down 3 -down 7 -up 4 -forward 9 -down 2 -down 3 -forward 1 -up 6 -down 1 -down 9 -forward 8 -forward 9 -forward 2 -down 6 -down 4 -up 3 -up 8 -forward 1 -down 3 -up 8 -up 7 -down 4 -up 3 -down 7 -down 2 -down 5 -down 7 -down 2 -forward 2 -down 3 -up 2 -forward 8 -up 1 -forward 2 -up 4 -forward 1 -forward 8 -forward 6 -forward 2 -down 2 -forward 5 -up 4 -down 9 -down 7 -forward 2 -down 9 -down 9 -forward 6 -down 8 -down 4 -down 7 -down 9 -forward 7 -forward 7 -up 6 -forward 3 -forward 5 -forward 6 -down 8 -up 1 -forward 2 -up 4 -up 2 -down 8 -down 9 -down 1 -down 3 -forward 7 -forward 5 -forward 6 -up 6 -down 7 -up 8 -up 1 -forward 8 -down 5 -up 1 -down 2 -down 5 -forward 6 -down 4 -forward 5 -down 4 -forward 3 -down 5 -up 4 -up 7 -forward 2 -up 2 -down 8 -forward 6 \ No newline at end of file +A Z +A Z +C Y +A X +A X +A Z +C X +A X +C Y +A Z +B Y +B Y +C X +C Y +C X +B Y +A Y +C Y +B Y +B Z +B Y +C X +A Z +C Y +B Y +B Y +A Z +B Y +B Y +B Y +B Z +B Y +A Z +B Y +C Y +B Y +B Z +C X +B Z +A X +B Y +B Z +C Y +A Z +C Y +A Z +B Y +C Y +A Z +A Z +B Y +C Y +C X +A Z +B Z +A Z +B Y +C X +B Y +B Y +B Y +A Y +B Z +C Y +C X +A Z +B Y +B Y +B X +A Z +C X +B Y +B Y +A Z +A Z +A X +A X +B Y +C X +A X +A Z +A Z +B Y +C Y +B Z +A X +B Z +A Z +B Y +A Z +C Y +A Z +A X +B Y +C Y +B Y +A X +B Z +C Y +B Y +B Y +A Z +A X +A X +B Y +C Y +B X +B Z +C X +B Y +A Y +B Y +B Y +B Y +A X +C Y +A Z +C Y +C Y +B Z +B Y +A Z +A Z +A Z +B Y +C Y +B Z +C X +C Y +B Z +A X +A Z +C Y +B Y +C Y +C Y +C Y +B Y +B X +B Y +B Y +C Y +A X +B Z +B X +C X +B X +C Y +B Z +B Y +A X +C Y +C Y +C X +B Z +B Y +A Y +B Z +A Z +B Y +B Y +B Z +B Z +C Y +A Z +A X +A X +C Y +B Y +A Z +B Z +A X +A Z +B Z +C Y +C Z +A X +A Y +B Y +C Y +B Y +C Y +B Z +B Y +A Z +C Y +B Z +B Y +A Z +A Y +B Y +B Y +C Y +A Z +C Y +B Y +B Y +A X +A Z +A Z +B Y +B Y +B Z +C Y +C X +B Z +A Y +B Z +A X +C X +A Y +B Z +B Z +A X +C X +C X +A Z +C Y +A X +A X +C X +A X +B Z +C Z +B Z +B Y +B Y +A Z +A Z +B Y +A Z +C Y +C X +B Y +A X +A X +B Z +C Y +C Y +A X +B Z +A X +C X +C X +B Z +C X +B Z +A X +A Y +A X +A Z +A X +B Y +C Y +A X +C Y +A Z +B Z +A Z +C Y +A X +A Z +B Y +A Z +B Z +B Z +A Z +B Z +A X +B Y +B Z +C X +B Y +B Y +B Y +B Y +A X +B Z +B Z +A Z +A Z +C Y +B Y +C X +A X +B Y +B Y +C X +B Y +A X +C Y +A Z +B Y +A Y +B Z +B Y +A Z +A X +B Z +C Y +A Z +C Y +C X +B Y +B Z +C X +A Y +B Z +A Y +B Z +B Z +B Y +B Z +C X +B Y +A X +B Z +A Z +B Y +A Z +C Y +C Y +C X +C X +A X +C X +A X +A X +B Z +B Y +B Y +B Y +B Y +C X +C X +A Z +A Z +C X +C X +C Y +C Y +C Y +B Y +A Z +C Y +B Z +B Z +B Y +C X +C X +C Y +C Y +C X +B Z +B Z +B Y +C Y +B Y +A Z +C Y +A X +B Y +C Y +C Y +C Y +B Y +A Z +B Y +A X +B Z +C X +A Z +C X +A Z +B Z +C Y +C Y +C Y +C X +B Z +C X +B Y +B Z +C X +B X +A Z +B Z +B Y +C Y +B Z +C Y +A X +B Z +C Y +C Y +B Z +B Y +C Y +B Z +C Y +A Z +C X +C X +C Y +A Z +C Z +C Y +B Y +C Y +B Y +B Y +B Z +C X +C X +B Z +B Z +B Z +A Z +B Y +B Y +A X +B Y +C Y +B Y +C X +C X +B Y +B Y +A Y +B Z +B Y +B Y +C Y +A Z +C X +A Y +B Y +B Z +B Y +A Y +C Y +A Y +A Z +B Y +A Z +C Y +C Y +B Y +A Z +B Y +B Y +A Z +B Z +B Y +C X +C Y +B Z +B Y +B Y +A Z +C Z +A Z +A X +C X +B Z +B Z +C X +C Y +B Y +B X +A X +C Y +B Z +B Y +C X +B Y +A Z +A Z +A X +C Y +B Z +B Y +C X +C X +B Y +A Z +C Z +B Y +A Z +C Y +B Y +C X +A Z +A Z +A X +C X +A X +C X +C X +A Z +C X +B Y +A Z +B Y +B Y +C Y +C X +A Z +B Z +B Y +B Y +A Y +A Z +B Y +A Z +B Z +B Y +C Y +A Z +B Y +B Y +B Y +C Y +C X +A X +A Z +B Z +B Y +C Y +B Z +C X +B Y +C X +A Z +B Y +B X +B Y +A Y +A X +A X +C X +C X +B Y +B X +C Y +A Z +B Z +C Y +C Y +B Y +A Z +C X +A Z +C Y +B Z +B X +C X +B X +C X +B Y +C Y +C Y +B Z +B Y +B Z +B Z +A Z +B Y +A Y +B Z +C X +C Y +C X +A Z +B Z +C Y +B Y +B Z +C X +B Y +A Y +A X +A X +C Y +B X +C X +B Z +A Z +A Y +B Z +C X +C X +B Y +A X +B Z +C Y +B X +B Z +C Y +B Y +C Y +B Z +B Y +B Z +B Y +C X +B Y +C X +B Z +B Z +C X +B Z +A X +B X +B Y +A X +B Z +C X +B Z +B Y +B Y +C X +A Y +B Z +B Z +B Y +B Y +B Z +C Y +B Z +C Y +C X +A Z +C X +A X +C Y +B Y +C X +A Z +B Y +A Z +A Z +B X +C Y +B Z +C Y +B Y +B Z +A X +B Z +A X +C X +B Z +B Y +C X +C Y +C Y +B X +C X +C X +B Z +C Y +B Z +B Y +B Z +C Y +B Y +C Y +C X +B Y +B Y +B Z +A Z +C X +A Z +B Y +B Z +A Z +C Y +A Z +B Y +A Z +A Z +C Y +A Y +B Y +A Y +C X +B Y +C X +B Z +C Y +A Z +C X +C X +B Z +C Z +C Z +B Y +B Y +C Y +C Y +A Z +C Y +C Y +C Y +A Z +B Z +C Y +B Y +C Y +C X +C X +B X +B Y +C Y +A Y +B Y +B Z +B Y +A Y +B Y +B X +C X +C Z +C Y +C Y +C Y +B Z +B X +C Y +B Z +C X +C Y +A Z +A Y +B Y +C X +A Z +B Y +C Y +B Z +A Z +A Z +B Y +A Z +C Y +A X +C Y +B Z +B Z +B Z +B Y +B Y +A Z +A Z +B Y +C X +A Z +C Y +B Y +A Z +C Y +A Z +B Z +B Z +A Y +B Y +B Y +B Z +C Z +B Y +B X +B Y +C X +B Z +C Y +B Z +A Y +B Z +A Z +A X +A Z +C X +C X +B Y +C X +C Y +A Z +B Z +B Y +A Z +B Z +B Z +B Z +C Y +B Y +A X +C Y +C Y +C X +A X +C Y +B Y +C X +B Z +A Y +B X +B Y +A Z +B Y +B Y +B Y +B Z +C X +B Z +B Z +C X +B Y +A Y +B Y +C Y +A Z +C Z +B Y +B Z +B Z +C Y +A Z +C Y +C X +C Y +B Y +A X +A X +B Z +C Y +B Z +B Y +A Y +C X +A Z +B Z +C Y +C Z +C X +B Y +C X +A Y +A Y +B Z +C X +B X +C X +B Y +B Z +B Z +B Y +C Y +B Y +B Y +A Z +B Z +B Y +C X +B Z +B Y +B Y +C Y +C Z +C X +B Y +A X +C Y +C X +B Z +C Y +A X +B Y +A Y +B Y +C X +C Y +C X +A X +B Z +C X +B Y +A Z +C X +B Y +A Z +B Y +B Y +B Y +A Z +A X +C X +C Y +C Y +B Y +B Y +B Z +A Y +C X +C X +B Y +B Y +B Z +A X +C X +C X +B X +A X +B Z +B Y +C X +A X +B Y +C Y +A X +B Y +C X +B Z +C Z +B X +C Y +B Y +C Y +A Z +C Y +B Z +C X +B Z +C X +C Y +C X +C Y +C Z +C X +C X +B Y +C Y +C X +C X +B Z +B Z +A X +C Y +C Z +B Y +C Z +C Y +C X +C X +B Y +C Y +A Y +B Y +A Y +B Y +B Y +B Y +C Y +C Z +B Y +C X +C X +B Z +B Y +B Z +C Y +B Z +C X +B Z +B Y +B Y +A Z +A X +B X +A X +C X +C Y +B Y +A X +B Z +B Y +B Y +A X +C X +C X +B Y +B Y +C Y +C Y +B Z +B Y +B Y +B Y +C Y +A X +B Y +C Y +B Z +B Y +B Y +B Z +B Y +B Y +B Z +B Y +B Y +C Y +A Z +B Z +A Y +B Y +C Y +B Z +B Y +B Y +C X +A X +C Z +C X +B Y +B Z +C Y +C X +B Z +A Z +A Z +C Y +A Z +B Y +B Y +B Z +B Y +C Y +B Z +C Y +B Z +B Z +B Y +C X +B Y +B Z +A X +C X +C X +B Z +B Z +C X +B Y +A Z +B Y +B Z +C Y +B Y +A Z +B Z +B Y +B Y +B Y +C X +C Y +A Z +B Y +B Y +A Z +A Z +A Z +A X +B X +A Z +C Y +C X +A X +B Z +A X +C X +B Z +B Y +B Y +C X +A Z +C Y +C X +A Y +C X +A Z +B Z +B Z +B Y +C Y +B Z +A Z +A Z +C Y +B Y +B Z +A Z +A Z +B Z +B Y +A Z +C Y +A Z +A Z +B Y +B Z +B Z +A X +A X +B Y +B Z +B Z +C X +B Z +C Z +B Y +B Y +B Y +B Z +A X +A Z +B Y +A X +B Y +B Y +C X +C X +C Y +C Y +A Z +A X +B Y +A Z +B Z +B Y +C X +B Y +B X +C X +A X +A Z +C Y +C X +C Y +B Y +B Y +A X +A Y +B Y +A Y +C Y +C X +B Y +B Y +B Z +C X +C X +B Y +C X +B Z +C Y +A X +A Z +A Z +B Y +A Y +C Y +C X +C Y +C Y +B Y +B Y +A Z +C X +A X +B Y +B Y +B Y +B Z +A Z +B Y +B Y +A Z +B Y +A Z +C X +B Z +C Y +B Y +B Y +A X +B Y +A X +B Y +B Z +C X +B Z +B Y +C X +C Y +C Y +A X +A X +B Z +B Z +B Y +C X +A Z +C Y +C Y +C Y +B Z +B Z +B Y +A Z +C Y +A X +A Z +C Y +B Z +B Y +B Y +A Z +B Y +A Z +C X +A X +B Z +B Y +B Y +B Z +A Z +C X +B Y +C X +B Z +C X +A Z +B Y +A Z +A Z +B Y +C Y +C X +C Y +A X +C Y +B Y +B Z +C X +C Y +A X +B Z +B Y +C Y +A X +B Z +A Y +B Z +B Y +B Z +A X +A Z +A X +B Z +C Y +B Y +A Y +B Z +A Z +C Y +C X +B Z +B Y +C Y +B Z +C X +C Y +A X +B Z +B Z +B Z +B Z +B Y +C X +B Y +C X +A Z +A Z +C Y +A Y +B Y +C X +A Z +B Z +C X +C X +A X +B Y +C X +A Z +B Y +B Y +B Y +B Y +C X +C Y +C Y +B Y +A Z +B Y +B Z +B Z +B Y +A X +B Z +B Z +C X +C X +C Y +B Y +C Y +B Y +B Y +B Z +B X +C X +C Y +A Z +B Z +B Y +A X +B Z +A Z +B Z +B Y +B Y +A Z +C Y +B Y +C Y +B Z +B Y +C X +B Z +B Z +C Y +C Y +B Y +C Y +C X +B X +B Y +C Y +B Y +B X +C X +B Y +A Y +A Z +A Y +B Z +A Z +A Z +A Z +B Y +A Z +A Z +C Y +B Z +A Z +A X +B Y +C Y +C X +C X +A Z +B Z +B X +B Z +C X +B Z +C Y +C X +C Z +C X +B Z +B Z +B Z +B Z +A Z +A Z +C Y +C Z +C Y +A X +B Y +B Y +B Y +A Z +A Z +B Z +C Y +C X +B Y +C X +B Z +B Y +B Y +B Y +B Y +B Y +B X +A Z +A X +A Y +C X +B Z +B Y +B Z +C Y +A Z +B Z +B Z +C Y +B Z +B Z +C X +B Y +C X +B Z +C X +C Y +C Y +C X +A Z +A Z +B Z +B Y +C X +C X +A Y +A Z +C X +A X +A X +A Z +C Y +B Z +B Y +A Z +B Y +B Y +B Z +B Y +C Y +B Z +A X +B Y +A X +B Z +A Z +C X +A X +C Z +A Z +C Y +A X +B Y +B Z +B Z +A X +C Y +A Z +C X +A Y +C X +B Y +B Z +A X +B Y +B Y +A Y +A X +B Y +C X +A Y +B Y +B Y +C Y +A Z +B Z +A Z +B Y +A Z +C Y +C X +B Z +B Y +B Z +A X +C Y +C Z +A X +A X +C Y +C Y +A Z +C Y +C X +A Y +C Y +B Y +B X +B Y +A Z +C X +C X +B Y +A Z +A X +B Z +C X +B Y +B Y +C Z +A X +A X +B Z +C X +C Y +B Z +C Z +B Y +A Y +A Z +A Y +C Y +C Y +C Y +B Z +B Z +B Y +B Y +B Y +B Z +B Z +C X +A X +C X +B Y +B Y +B Y +C Y +B Y +B Y +C X +A Y +B Z +C X +B Z +B Y +A X +C Y +B Y +C Y +B Z +B Y +C Y +C Z +C Y +A Y +B Z +A X +B Z +A Z +A Z +A Z +B Y +A X +C Y +B Y +B Y +B Y +C X +B Y +A X +C X +B Y +C X +A Z +B Z +B Z +B Y +C Y +B Y +A Z +B Y +C Y +B Z +C X +B Y +B Y +B Z +C X +C Y +B Z +B Z +C Y +C X +C X +B Y +B Z +A X +C X +A Z +A Y +B Z +B Y +B Y +C Y +C X +B Y +B Z +C Y +C Y +C X +C X +B Z +A Z +B Z +B Y +C X +A X +C X +A Z +C X +B Z +C Z +B Y +C Y +B Y +C Z +A Z +B Y +C Z +A X +B Z +B X +C Y +C X +B Z +A Z +B Y +A X +B X +A Z +C Y +A Y +A Z +A X +C X +A Y +C X +B X +B Y +C Z +A Z +C X +B Y +C X +C X +B X +B Y +A Y +B Y +B Y +A Z +B Y +C Y +C X +B Y +B Y +B Z +C Y +B Z +A Z +A Z +A X +B Y +C Y +B Y +C Y +C Y +B Z +A X +C Y +B Z +C Y +A Y +B Y +B Y +B Y +C Y +A Z +A Z +B Z +A Z +C Y +C Y +B Y +C X +B Y +A Z +B Z +A X +B Z +B Y +B Z +A X +A X +C Y +A Z +B Z +C Y +B Z +C X +B Z +A X +B Z +B Z +C Y +B Y +B Y +C Y +B Y +A X +B Y +C Y +A Z +B Y +C X +A Z +B Z +A Z +B Z +C Y +B Y +B Y +B Y +C Y +B Y +B Y +A Z +B Y +B Z +C X +B Z +C X +C X +A X +B Z +C Z +B Z +A Y +C X +C X +A Z +A X +A Y +A X +B Y +B Y +C X +C Z +A Y +C Y +B Y +B Y +C X +C X +B Z +B Z +B Y +C Y +A Z +B Y +C X +C X +A X +A X +A Y +B Y +C X +A Z +C Z +C Y +C Y +C Y +B Y +C Y +A Y +A X +B X +B Y +B Y +B Y +B Y +A Z +B Z +B Y +B Y +C Y +A X +A Z +A Z +A Z +B Y +A X +C Y +C Y +B Y +B Y +C Y +A Z +C Y +A X +C X +B Z +B Y +C X +B Y +A X +A Z +C X +C Y +C Y +C X +C X +B Z +B Y +A Z +B Y +B Z +B Z +B Y +B Y +A X +C X +C Y +C X +A Z +B Z +B Y +B Y +C Y +A X +A X +C Y +C X +B Z +A Y +B Y +B Z +B Y +A X +C Y +B Y +A X +C X +B Y +B Y +A Z +A Z +A Z +B Y +B Y +C X +B Z +A Z +B Z +A Z +C X +B Y +C X +B Y +C X +C X +B Y +B Y +A Y +C Y +C Y +B Z +C X +B Y +B Y +A X +A Z +B Y +C Y +B Y +C Y +A X +C Y +C Y +B Z +C Y +A X +C X +A Z +C Y +A Z +C X +B Z +B Y +B Z +C Y +B X +A Z +C Y +C X +B Y +C X +B Z +A X +A Z +C X +B Z +C X +B Y +A Z +B Y +C Y +B Y +C X +C Y +B X +B X +B Y +B Y +B Y +B Z +B Y +C X +A Z +A Z +C X +B Y +B Y +B Y +A Y +C Y +B Z +C X +C Y +A X +C Y +B Z +C Y +B Y +B Y +B Z +A Z +A Z +B Y +A Y +B Z +A X +C Y +B Y +A X +C X +B Y +C Y +B Z +B Y +C X +A Z +C Y +A Z +B Y +C Y +B Y +C X +A Z +C Y +C Y +A Y +B Z +C X +C X +A Z +C Z +C X +B Y +C X +A X +C Y +C X +C X +A X +A Y +A X +C X +A X +A X +B X +B Y +C Y +A X +B Z +C X +C Y +B Y +B Z +C Y +B Z +B Y +C X +A X +B Y +B Z +C Y +A Z +C X +C Z +A X +A Z +A Z +B Z +A Z +B Y +C Y +C Y +B Z +C Y +C Y +C Y +C X +A X +B Y +A X +C X +C Z +B Y +A Z +B Y +C Y +C Y +B Z +C Y +C X +B Z +C Y +B Y +B Z +A Z +B Z +B Z +B Y +A Z +A Y +C X +B Y +A Z +C Y +B Z +A Z +B Y +B Y +C Y +B Y +B Y +B Y +C Y +B X +B Y +A X +A X +B Z +A X +C Y +A Z +B Y +B Y +B Z +A Z +C Y +C X +B Y +A Z +A X +B Y +C X +B Z +A X +C X +B Z +B Z +B Z +B X +A X +C Z +C X +C Z +B X +A Z +C X +B Y +C X +C Y +C Y +B Y +B Z +B Y +C Y +C X +A Z +C Y +C Y +C Y +B Z +A Z +A Y +C X +C Y +B Y +C Y +C Y +B Z +C Y +B Y +B Y +C X +B Z +B Y +A X +B Y +A Z +B Y +C X +B Y +C X +B Y +A Z +C X +B Y +C X +B Z +C X +B Y +A X +C X +C X +A X +C Y +A Z +C Y +B Z +A Z +A X +C X +A X +C Y +A X +A X +B Z +C X +C Y +A Y +B Z +B Y +C Y +B Y +A Y +C Y +C Y +B Y +B Y +B Z +B Z +C X +B Y +C X +A X +A Z +C Y +B Z +C Y +B Y +C X +C X +A Z +B Z +A Z +C X +B Y +B Z +C Y +B Y +A X +A X +B Y +B Y +B Y +A X +B Y +B Z +A Z +A X +A X +B Z +B Y +A X +B Z +A Z +B Y +B Z +B Z +B Z +C Y +C Y +A Z +B Y +C Y +A Z +C X +B Z +A X +B X +B Y +B Y +C Y +C Y +B Z +B Y +A Z +B Y +A X +B Z +B Y +C Z +B Y +B Y +C Y +B Y +B Y +A Y +C Y +A Z +A Y +B Z +C X +B Z +A X +A Z +A X +C Y +A Z +B Y +B Z +B Z +C Y +C Y +C Y +B X +B Y +B Z +A X +B Y +C Y +A X +A X +B Y +C Y +A Y +B Z +B Z +B Z +A Z +B Y +C X +A Z +C Y +C Y +B Y +C Y +C Y +C Y +C Y +B Y +B Z +A Z +B X +C Y +C X +C X +C Y +A Z +C Y +C X +B Z +B Y +A Y +C Z +B Y +B Y +B Y +B Y +C Y +B Y +C Y +A Z +B Y +C X +C Y +B Z +A X +C Y +B Y +B Y +B Y +A Z +A X +A X +C X +C Z +B Z +A X +A Z +A X +A Y +C Y +C Y +A Z +C X +C X +B X +B Y +A X +A Z +A X +C Y +B X +A X +A X +C X +A Y +B Z +A Z +B Y +A X +A Z +B Y +A Z +C Y +B Z +A Z +C Y +C X +B Z +C Y +B Y +C X +A Z +B Z +A X +A X +C Z +A X +C X +B Y +B Z +A X +A X +C Y +A Z +C Y +C X +C Y +B Z +B Y +C X +C X +B Z +B Z +C Y +A X +B X +C X +C Y +A X +A Z +B Y +C X +A Y +C X +C Y +A Z +B Y +B Z +B Y +C X +C Y +C X +C X +B Y +C X +C X +B Y +C Z +C Y +C Y +B Z +B Z +B Y +A X +B Y +A Z +A Y +B Y +C Y +B Z +B Z +A X +B Y +A X +B Y +A Z +B Y +C X +A Z +B Z +C Y +B Y +A Y +A X +C X +A X +B Y +B Z +B Z +C Y +A X +B Y +B Z +B Y +B X +C Z +B Z +C X +C Y +C X +B Z +C Y +A X +A X +C X +B Y +B X +B Y +A X +C Y +A Z +B Y +B Y +B Y +B Z +B Y +C X +A Z +C Y +A Z +B Z +C X +C Y +C X +C Y +A Y +B Z +B Y +B Z +C Y +A X +B Y +A X +C X +B X +C X +A Z +B Z +B Z +C Y +B Z \ No newline at end of file diff --git a/inputs/02a.txt b/inputs/02a.txt new file mode 100644 index 0000000..25097e8 --- /dev/null +++ b/inputs/02a.txt @@ -0,0 +1,3 @@ +A Y +B X +C Z \ No newline at end of file diff --git a/src/02.cs b/src/02.cs new file mode 100644 index 0000000..3d0e193 --- /dev/null +++ b/src/02.cs @@ -0,0 +1,115 @@ +namespace aoc2022; + +internal class Day02 : Day +{ + IEnumerable? lines; + + internal override void Parse() + { + lines = Util.ReadAllLines("02"); + } + + internal override string Part1() + { + int score = 0; + foreach (var line in lines!) + { + int roundScore = 0; + switch (line[0]) + { + case 'A' when line[2] == 'X': + roundScore += 1; + roundScore += 3; + break; + case 'A' when line[2] == 'Y': + roundScore += 2; + roundScore += 6; + break; + case 'A' when line[2] == 'Z': + roundScore += 3; + roundScore += 0; + break; + case 'B' when line[2] == 'X': + roundScore += 1; + roundScore += 0; + break; + case 'B' when line[2] == 'Y': + roundScore += 2; + roundScore += 3; + break; + case 'B' when line[2] == 'Z': + roundScore += 3; + roundScore += 6; + break; + case 'C' when line[2] == 'X': + roundScore += 1; + roundScore += 6; + break; + case 'C' when line[2] == 'Y': + roundScore += 2; + roundScore += 0; + break; + case 'C' when line[2] == 'Z': + roundScore += 3; + roundScore += 3; + break; + } + + score += roundScore; + } + + return $"Score: <+white>{score}"; + } + + internal override string Part2() + { + int score = 0; + foreach (var line in lines!) + { + int roundScore = 0; + switch (line[0]) + { + case 'A' when line[2] == 'X': + roundScore += 3; + roundScore += 0; + break; + case 'A' when line[2] == 'Y': + roundScore += 1; + roundScore += 3; + break; + case 'A' when line[2] == 'Z': + roundScore += 2; + roundScore += 6; + break; + case 'B' when line[2] == 'X': + roundScore += 1; + roundScore += 0; + break; + case 'B' when line[2] == 'Y': + roundScore += 2; + roundScore += 3; + break; + case 'B' when line[2] == 'Z': + roundScore += 3; + roundScore += 6; + break; + case 'C' when line[2] == 'X': + roundScore += 2; + roundScore += 0; + break; + case 'C' when line[2] == 'Y': + roundScore += 3; + roundScore += 3; + break; + case 'C' when line[2] == 'Z': + roundScore += 1; + roundScore += 6; + break; + } + + score += roundScore; + } + + return $"Score: <+white>{score}"; + } +} diff --git a/src/main.cs b/src/main.cs index 79606b1..20ead3c 100644 --- a/src/main.cs +++ b/src/main.cs @@ -49,7 +49,7 @@ else Day? day = null; if (string.IsNullOrEmpty(desiredDay)) { - day = new Day01(); + day = (Day)Activator.CreateInstance(types.Last())!; } else {