diff --git a/02/input b/02/input new file mode 100644 index 0000000..7a5c4fe --- /dev/null +++ b/02/input @@ -0,0 +1,2500 @@ +A Y +B Y +B Z +B Z +B X +B Z +C Y +A Z +C X +C X +B Z +B Z +B Z +A X +B Z +B Z +A Y +B Z +A Z +B X +B Z +A X +A X +B Z +A Y +A Z +B Z +A Y +A Z +B Z +A Z +B Z +B Z +C Y +B Z +B Z +A X +C X +B Z +A X +B Z +C X +A X +B Z +A X +A X +C X +B Z +B Z +B Z +C Y +C Y +A X +B Z +C X +B Z +A X +A Y +B Z +B Z +B Z +B Z +B Z +B X +B Z +B Z +B Z +B X +A X +A X +B Z +A Y +C Y +C Y +A Y +A X +B Z +A Y +A Z +A X +A X +A Y +C Y +B Z +B Z +C X +B Z +A Y +A X +B Z +B Z +A X +A X +A X +B Z +A Y +B Z +A Z +C Y +B Z +B Z +B Z +C Y +A Y +C Y +B Z +A X +B Z +A X +B Z +C Y +B Z +B Z +B Z +C X +B Z +A X +B Z +B Z +B Z +A X +A X +B X +C Y +B Z +B Z +B Z +A X +B Z +A X +B Z +A X +A Z +A X +B Z +A X +C Y +A X +B Z +A X +C Y +B Z +B Z +A X +A X +B Z +C Y +B Y +B Z +B Z +B Z +B X +B Z +B Z +B Z +A X +B Z +C Y +C Y +A Z +A X +B Z +B Z +B Y +B Z +B Z +C Y +B Z +B Y +B Z +C Y +B Z +B Z +C X +C X +C X +B Z +A Z +A X +C Y +A Z +B Z +B Z +B Z +B Z +A X +A X +B Z +B Z +A Z +A X +A X +B Z +C Y +A X +A Z +A Y +A Y +A X +B Z +A X +A Z +B Z +C X +B Z +C X +C Y +B Z +B Z +B Z +B Z +B Z +C Y +A X +C Y +A X +B Y +B Y +A X +A X +B Z +B Z +C X +A Z +C Y +A X +A X +A Y +A X +A X +B Z +A Z +B Z +B Z +B Z +A Z +A X +B Z +B Z +C Y +B Z +B Z +B Z +A X +A X +B Z +B Z +B Z +B Z +B Z +B Z +A X +C X +A X +A X +C Y +A X +B Z +C Y +B Z +B Z +B Z +A X +B Z +C Y +B Z +A X +A X +B Z +A X +A X +B Z +A Z +B X +A X +A X +B Z +C Y +A Y +A X +C X +B Z +A X +B Z +B Z +A X +B Z +A Z +C Y +B Z +B Z +A X +A X +B X +A X +B Z +B Z +C X +A X +C X +A X +B Z +B Z +A X +A Z +B Z +B X +A X +A Y +B Z +B Z +B Z +C X +C Y +B Z +B Z +C Z +B X +C Y +C Z +B Z +B Z +A X +B Z +C X +B Z +B Z +A Z +A X +C X +B Z +B Z +A X +C Y +A X +B X +C Z +B Z +B Z +A X +B Z +A Y +B Z +B Z +A X +B Z +C Y +C Y +A X +C Y +C X +C X +A X +B Z +C Y +B Z +C X +B Z +A Z +B Z +A Z +B X +B Z +A Z +A X +B Z +B Z +B Z +A X +A X +A X +B Z +A X +B Z +B X +A Y +B Z +A X +B Z +B Z +B Z +A X +B Z +C X +A Y +A X +A Z +C Y +C Y +A X +C Y +B Z +A X +B Z +C Y +B X +A Z +B Z +B Z +B X +B Z +B Z +B Z +A Y +A Y +C Y +A Z +A X +B Z +B Z +A X +A X +A X +B Z +A X +B Z +B Y +A X +A X +A X +B Z +B Z +B Z +C Y +A X +A X +A X +A X +A X +A X +C Y +A Z +C X +B Z +B Z +C Z +A X +A X +B Z +A X +B X +B Z +B Z +C X +B Z +A Z +A X +B Z +A Z +B Z +B Y +A X +C Y +A X +B Z +B Z +B Z +A Z +C Y +C Z +A X +B Z +B Z +B X +A X +B Z +A X +B Z +B Z +C Z +B Z +A X +C Y +C X +A Z +C X +A X +A X +A X +B Z +B Y +C Y +B Z +B Z +C Y +B Z +A X +B Z +A Z +A X +B Z +A Y +A X +A X +B X +B Z +B Z +B Z +B Z +C Z +B Y +A X +A X +B Z +B Z +B Z +C Z +B Z +B Z +A Y +A Z +B Z +A X +C Y +B Z +A Z +C Z +B Z +C X +B Z +B Z +A X +B Z +A X +B Z +C Y +A X +B Z +A Z +B Z +C Y +A X +C X +A X +A X +B Z +B Z +B X +B Z +C X +C Y +A Z +B Z +C Y +B Z +C Y +B Y +A Y +B Z +A X +B Z +A Z +B Z +A X +C X +B Z +B X +C Y +A Z +A X +B Z +B Z +B Z +A Z +C Y +C Y +B Z +A Y +A X +A X +A Y +C Y +A Y +B Z +B Z +B Z +A Z +B Z +A Z +B Z +A X +A Z +B Z +C Y +B Z +A X +A X +A X +A Z +A Z +B Z +C Y +B Z +A X +B Z +B Z +A Z +B Z +B Z +A X +B Z +B Z +B X +A X +B Z +B Z +A Z +A X +B X +A X +B Z +A X +B Z +A X +B Z +C Y +B Z +C Z +C X +B Z +B Z +B Z +C Y +C X +B Z +B Z +B Z +B Z +A Y +A Y +C Y +A X +C X +B X +A X +C X +A Y +B X +A X +A Z +B Z +B X +B Y +B Z +B Z +B X +B Z +C Y +B Z +A X +A X +A X +B Z +A X +B Z +A X +B Z +B Z +B Z +B Z +A X +C Y +A X +B Z +B Z +B Z +A X +B Z +B Z +C Z +A X +A Z +B Z +C Y +B Z +B Z +B Z +B Z +A Z +B Z +B Z +B Z +C Y +A X +B X +C Y +A X +C Z +B Z +C Y +C Y +B Z +A X +B Z +C Z +A X +A Z +B Z +A Z +B Z +B X +B Z +A Z +B Z +C Y +C Z +B Z +A X +B Z +A X +A X +B Z +B Z +B Z +B Z +A X +A Z +A X +B X +B Z +A Y +A Y +B Z +A X +B Z +B Z +A Y +C X +B Z +B Z +B Z +C X +B Z +C X +A X +B Z +C Y +A X +A X +A X +C Z +A X +A X +A Y +B Z +B Z +B Z +B Z +B Z +C X +C Y +B Z +B Z +C X +B Z +B Z +B Z +C Y +C Y +A Z +A X +B Z +A X +B X +B Z +B Z +C Y +B Z +A X +B X +A Z +A Z +B Z +A X +C X +A X +B Z +B Z +B Z +A X +A Z +C X +B Z +A X +A Z +A Z +A Z +A Z +C Y +B X +B X +C Z +B X +C Z +A X +A Y +B Z +B X +A Y +A Z +B X +A X +A X +C Z +A Z +B Z +C X +B Z +B Z +C X +B Z +C X +A X +A Y +A X +B Z +A X +B Z +C Y +B Z +B Z +B Z +B Z +B Z +B Z +B Z +B Z +B Z +A X +B Z +A X +B Z +A Y +B Z +A X +A Z +B Z +C Y +A Z +A X +A Z +C X +B Z +B Z +B Z +A X +C X +C Y +B Z +A Z +A Z +C X +B Z +C Y +A Z +A Z +A Y +B Z +A Z +B Z +B Y +C Y +B Z +B Z +A Z +A X +B Z +C Y +B Z +B Z +B Z +B Z +B Z +A X +C Y +B X +C X +B Z +A Z +B Z +A X +B Z +B Z +A X +C Y +A X +A X +A X +C X +A X +A X +B Z +A Y +A X +B Z +C X +A X +C Z +A X +B Z +C X +A X +A X +A X +B Z +C X +B Z +B Z +A X +A X +A X +A X +B Z +A X +A X +B Z +B X +A Y +A X +C X +A X +C X +A X +B Z +B Z +B Z +B Z +B Z +A X +A X +B X +C Y +A Y +C X +C X +C X +B Z +B Z +B X +B Z +B Z +C X +B Z +B Z +A X +B Z +B Z +B X +A X +A X +C Y +C X +A X +C Y +A Y +C X +B Z +A X +A Z +B Z +B Z +B X +B Z +B Z +B Z +C Y +B X +A X +B Z +A X +B Z +A X +A Z +A Y +C Y +B Z +C Y +A Z +A Z +B Z +A X +A X +C Y +C Y +A X +B Z +A X +C X +C Z +A X +A Y +A X +A X +A X +B Z +B Z +B Z +C Y +B Z +B Z +C Z +A X +B Z +B Z +A X +A X +B Z +B Z +B Z +A Y +B X +A Z +A Z +B Z +A X +B Z +B Y +A Y +A X +C Y +A Z +B Z +C X +C X +A X +B Z +A X +A X +A Z +B Z +A Z +A Z +B Z +B Z +A Y +B Z +C Y +C X +B Z +A X +A X +B Z +B Z +A X +A X +C Y +B Z +A Z +A X +B Z +C Y +B Z +A X +A X +B X +A X +B Z +C Y +B Z +A Y +B Z +B Z +B Z +B X +A X +B Z +C Y +B Z +B Z +B Z +A Z +C Y +C Y +C Y +A X +A Z +A X +B Z +A X +B Z +A X +C Y +B Z +B Z +A X +B Z +A X +A X +B Z +B Z +A X +A X +C X +B Z +A Y +A X +A X +B Z +C Y +C X +C X +B Y +A Z +B Z +A Z +A X +B Z +C Y +B Z +A X +A Z +B Z +A X +A Y +A X +B Z +B Z +B Y +B Z +A X +B Z +B Z +B Z +C Y +A X +B Z +B Z +A X +A X +A X +B Z +A Y +B Z +A Z +A X +B Z +C X +B Z +A X +A Z +A Z +B Z +A X +B Z +B Z +B Z +B Z +C Y +A Y +A Z +A X +A Y +B Z +B Z +B Z +C Y +C Y +B Z +A Y +A Z +A X +B Z +A Z +B Z +A X +C Y +B Z +B Z +B Z +B Z +B Z +C X +A Z +B Z +A Z +B Z +A X +B Z +A X +A Y +B Z +B X +B Z +A Y +B Z +A Z +B Z +B Z +A X +A Z +A Z +B X +B Z +A X +B X +A X +A Z +A X +C X +B Z +C X +A X +C X +A X +A X +A Z +A Z +B Z +A Z +B X +B Z +B Z +A X +B Z +B Z +A X +B Z +B Z +B Z +B Z +B Z +C X +A X +C Y +B Z +B Z +A Y +B X +B Z +A Z +B Z +B Z +C Y +B Z +A X +A Z +B Z +A Z +B Z +B Z +A X +B Z +A Z +A Z +A Z +C X +A Z +B Z +C Y +B Z +A Z +B Z +A X +A X +A X +A Z +A X +B Z +B Z +B Z +B Z +A Y +A X +C Y +C Z +B Z +A Z +A X +B Z +B X +B Z +A X +B Z +B Z +C Y +A X +B Z +B Z +C X +C X +B Z +B Y +A Y +A X +C Y +A X +A X +B Z +B Z +B Z +B Z +A Z +C X +A X +A X +A X +A X +A Y +A Z +A Y +A Y +B Z +A X +A Y +A X +A Z +A Z +A X +B Z +B Z +C Y +A X +B Z +C Y +B Z +B Z +A X +B Z +B X +A X +B Z +A Y +A Y +B X +B Z +B Z +C X +A X +B Z +A X +B X +B Z +A X +B Z +A X +B X +A X +A X +C X +A X +A X +B Z +A X +A X +A Y +B Z +B Z +C Y +B Z +A X +B Z +B Z +A Z +A X +B Z +A Y +B Z +C Y +A Z +A X +A Y +C Y +A X +A Y +C X +B Z +A X +A Y +A X +B Z +A Z +B Z +B Z +C Y +A X +C Y +A Z +B Z +B Z +A X +A X +B X +B Z +C Y +B Z +B Y +A X +B Z +A X +C X +B Z +A Y +A X +B Z +C Y +A Z +B Z +A X +A X +A Y +A Z +C X +B Z +B Z +B Z +A Z +B Z +C Y +B Z +B Z +B Z +B Z +B X +B Z +A X +B Z +B Z +A X +C X +C Y +B Z +B Z +A X +B Z +A X +A X +A Y +B Z +A Z +B Z +C Y +B Z +A X +A Y +C Y +B Y +A Y +A X +C Y +A X +A Z +A X +B Z +A Z +B Z +A X +B Z +C Y +A X +B Z +B X +B Z +A X +A X +A X +B Z +A Z +A Z +B Z +A X +B Z +B Z +A X +A X +B Z +B Z +A X +B Z +B X +B Z +C Y +A Z +B X +A X +B Z +B Z +A X +B Z +A X +B Z +B X +B X +A X +B Z +B Z +B Z +B Z +A Y +B Z +B Z +A X +C X +B Z +B Z +B Z +B Z +B Z +A X +C X +A Y +A X +A X +B Z +C Y +C X +B Z +A X +A Y +B Z +A X +B Z +C Y +B Z +A X +B Z +A Y +B X +A X +B Z +A X +B Z +A X +B Z +A X +C X +C X +A X +B Z +A Y +B Z +B Z +A X +A X +B Z +B Z +B Z +A X +A X +A X +C Y +A Y +B Z +B Z +B Z +B Z +A X +A X +B Z +B Z +C Y +A X +A X +B Z +A X +A Y +A X +B Z +B Z +B Z +A X +B Z +A X +B Z +A X +A X +B Z +A Y +A Z +B Y +A X +A Z +B Z +B Z +A Z +A X +A X +B Z +A X +B Z +A X +C X +A Z +A X +B Z +B Z +A X +A Z +C X +B Z +B Z +A X +B Z +B Z +A X +B Z +B Z +B Z +A Y +A Z +B Z +B Z +A X +B Z +B Z +B X +C X +B Z +B Z +B Z +A X +A X +A Z +B Z +C X +B Y +A Y +B Z +B Z +A X +A X +A Z +B Z +B Z +B Z +A X +A Z +A X +B Z +B Z +A Z +B Z +A Y +A Z +C Y +B Z +B Z +B Z +B Z +A Z +A Z +A Y +B Z +A X +A X +B Z +A Z +B Z +B Z +B X +C Y +B Z +C Y +B Z +A X +C Z +B Z +A X +A X +B Z +A Z +A X +B Z +A Z +A X +C Z +C X +B Z +B Z +B Z +B Z +B Z +C Y +A X +B Z +C Y +A X +B Z +B Z +A Z +A Z +B Z +C Y +A X +C X +B Z +B Z +B Z +B Z +A X +B Z +A X +B Z +A Y +B Z +B Z +B Z +B Z +B Z +C Y +B Z +B Z +A X +A X +A X +A Z +B Z +A Y +C Z +A Z +B Z +B Z +B Z +A X +B X +C Y +C X +C Y +B Z +B Z +B Z +B Z +A Y +B Z +A X +C X +A X +B X +C X +B Z +B Z +A X +A X +C Y +C Y +A X +B Z +C Y +A Y +A Z +A Y +B Z +B Z +B Z +A Y +B Z +A Z +A X +B Z +C X +A Z +B Z +A X +C X +A X +C Y +B X +B Z +B Z +A X +C Y +A X +B Z +C X +A Z +A Y +B Z +A Z +B Z +B Z +B Z +B Z +A X +A X +B Z +A Z +C Y +A Y +A X +A X +B Z +C Z +B Z +A Z +B X +C X +B Z +B Z +A X +A Z +A X +A Z +A X +B Z +B Z +C Y +B Z +B Z +B Z +B Z +A Z +B Z +B X +B Z +B Z +B Z +B Z +C X +C X +A X +B Z +B Z +B Z +B Z +B Z +B Z +A X +C X +B Z +B Z +A Y +B Z +A X +C Y +B Z +C Y +B Z +A Y +B Z +B Z +B Z +A X +A X +A X +B Z +C Y +B Z +A Z +A Y +A Z +A Y +B Z +A X +B X +B Z +A X +B Z +A Y +A X +B Z +A X +A X +A Y +A Y +A X +A X +A X +B Z +B Z +B Z +A X +B Z +A X +B Z +A X +B Y +B Y +A X +B Z +C X +A Z +C Y +A X +B Z +B Z +B Z +C Y +B X +C Y +B Z +B Z +B Z +A Z +B Z +B Z +B Z +C Y +B Z +B Z +A X +A Z +A Y +C Y +B Z +B Z +A X +B Z +B Z +A X +A X +B Z +B Y +B Z +B Z +A Z +B Z +B Z +A X +B Z +A X +C X +C X +A X +C Y +B Z +B Z +B Z +A X +C Y +B Z +B Z +B Z +B Z +B Z +B Z +B Z +B Z +B Z +B Z +C Y +C X +B Z +B Z +B Z +C Y +A Y +C Y +A X +B X +B Z +A X +C X +B Z +A Z +C X +C X +B Z +B Z +A Z +B Z +B X +B Z +B Z +B Z +A X +C X +B Z +A X +C Y +B Z +B Z +C X +B X +A X +B Z +C X +C X +B Z +B X +A X +B Z +A Y +B Z +A Z +A X +B Z +A X +A X +B Z +B Z +A X +B Z +A X +A X +C Y +B Z +A X +C Y +B Z +B Z +A X +A Y +C Y +B Z +A X +B Z +A X +A X +B Z +B Z +C Y +B Z +A X +A X +A X +A X +A Z +B Z +B Z +C X +C X +B Z +B Z +C Y +B Z +A Y +B Z +A X +C X +A Z +B Z +B Z +B Z +C Y +A X +B Z +B Z +C Y +B Z +C Y +B Z +A Z +B Z +A X +B Z +C Y +C Y +A X +A X +A Z +B Z +C Y +C Y +A X +B Z +B Z +A X +B Z +B Z +B Z +B Z +B X +B Y +A X +B Z +B Z +B Z +C Y +A X +A Y +B Z +A Z +A Z +B X +A X +C Y +B Z +B Z +A Z +B Z +C X +C X +A Z +B Z +A X +B Z +A X +B Z +B Z +B X +A X +A Z +B X +A X +B Z +A X +A X +A Z +A Y +B Z +A Y +C Y +C X +B Z +B Z +A X +A X +B Z +B Z +B Z +A Z +C X +A X +B Z +B Z +A X +B Z +B Z +B Z +A X +A Z +B Z +A X +B Z +A X +B Z +B Z +A X +C Y +A X +C X +A Z +B X +A Y +A Y +B Z +B Z +B Z +A X +A X +A X +A Y +B Z +B Z +B Z +B Z +B Z +B Z +B Z +B Z +C Y +B Z +B Z +B Z +C Y +A X +A Z +B Z +C Y +B Z +A Z +A X +B Z +A Y +B Z +B Z +A Z +B Z +A X +A Z +A Z +B Z +B Z +B Z +B Z +A X +A Z +B Z +B Z +B Z +B Z +A Z +B Z +C X +B Z +B Y +A X +B Z +B Z +A X +B Z +A X +A X +A X +A X +B X +B Z +C X +B Z +B Z +B Z +A X +B Z +C X +B Z +A Z +A X +A X +B Z +B Z +B Z +B Z +C X +A X +B Z +B Z +C Y +B Z +C Y +B Z +B Z +A X +B Z +A X +A Y +B Z +A Z +B Z +B Z +A Y +B Z +B Z +C Y +A X +A X +A X +A X +B Z +B Z +A Y +B Z +A Z +A X +A X +B Z +A Y +B Z +B Z +B X +A Y +A X +A X +C Y +C X +A X +B Z +B Z +B Z +A Y +B Z +C X +C X +C X +B Z +B Z +B Z +B Z +B Z +A X +B Z +A Y +B Z +A Y +C X +B X +B Z +B Z +A X +B X +B Z +B Z +B Z +B Z +B Z +A X +B Z +C X +B X +A X +A X +A X +A X +A X +B Z +C X +C Y +A X +B Z +C X +A Z +B Z +B Z +C Y +A X +A Z +B Z +B Z +B Z +B Z +B Z +B Z +A X +A X +B X +A X +B Z +A X +B Z +B Z +A Z +B Z +B Z +B Z +B Z +C X +B Z +A Z +B Z +B Z +A Z +A X +C X +B X +C X +A X +B Z +A Z +B X +B X +A Z +B Z +B Z +B X +B Z +B Z +C X +A Y +A X +A Z +B Z +A X +B Z +B Z +B Z +B Z +A X +A X +C Y +B Z +B Z +B Z +A Z +C X +C Y +B Y +B Z +B Z +A X +C Y +A Z +B Z +B Z +B Z +B Z +B Z +C X +B Z +A X +C X +A X +A Z +C Y +C X +B Z +B Z +A Y +A Z +A Z +A X +A Z +A Z +C Y +B Z +B Z +B Z +B Z +A Z +A X +A Y +C X +A X +B Z +B Z +B Z +A X +B Z +B Z +A Z +B Z +A X +B Z +A X +A Y +B Z +A X +A Z +B Z +A X +B Z +C X +B Z +B Z +C X +A Y +B Z +A Z +C X +C Z +C X +B Z +B Z +B Z +A X +B Z +C X +A X +A Y +A X +A Z +C Y +A X +B Z +B Z +C Z +A X +B Z +B Z +A X +A Z +B Z +A Y +B Z +C X +A X +A X +B Z +B Z +B Z +B X +C X +B Z +B Z +A X +A X +A Z +B Z +B Z +A Z +C Y +C Z +B Z +A X +A X +A X +C Y +A X +A X +A X +A Z +B Z +A Y +B Z +C X +B Z +A X +C X +B Z +A Y +A X +B Z +B Z +B Z +A X +A Y +B Z +A X +B Z +B Z +B Z +B Z +A X +A X +B Z +C X +B X +A Z +B Z +B Z +B Z +B Z +B Z diff --git a/02/solution.c b/02/solution.c new file mode 100644 index 0000000..c0d26cc --- /dev/null +++ b/02/solution.c @@ -0,0 +1,15 @@ +#include + +int main(void) { + char e, p; + int s = 0, g = 0; + + while(scanf("%c %c\n", &e, &p) == 2) { + e -= '@'; + p -= 'W'; + s += p + (p == e + 1 || p == e - 2 ? 2 : p == e) * 3; + g += (p - 1) * 3 + (p == 3 ? e > 2 ? 1 : e + 1 : p == 2 ? e : e < 2 ? 3 : e - 1); + } + + printf("Silver: %d\nGold: %d\n", s, g); +}