diff options
author | kartofen <mladenovnasko0@gmail.com> | 2022-12-02 18:53:27 +0200 |
---|---|---|
committer | kartofen <mladenovnasko0@gmail.com> | 2022-12-02 18:53:27 +0200 |
commit | 41085185b9a69e455a72d6beed8f29c52967d21d (patch) | |
tree | eff276573bef8a50b312045270b36e328d95a7a5 /Advent-of-Code-2022/aoc-2 | |
parent | 4e9132b983c771d3e70d5a6b8bcdfdb1fead81fa (diff) |
add 2022
Diffstat (limited to 'Advent-of-Code-2022/aoc-2')
-rwxr-xr-x | Advent-of-Code-2022/aoc-2/build.sh | 5 | ||||
-rw-r--r-- | Advent-of-Code-2022/aoc-2/input.txt | 2500 | ||||
-rw-r--r-- | Advent-of-Code-2022/aoc-2/main.c | 70 | ||||
-rw-r--r-- | Advent-of-Code-2022/aoc-2/sample.txt | 3 |
4 files changed, 2578 insertions, 0 deletions
diff --git a/Advent-of-Code-2022/aoc-2/build.sh b/Advent-of-Code-2022/aoc-2/build.sh new file mode 100755 index 0000000..30f495e --- /dev/null +++ b/Advent-of-Code-2022/aoc-2/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +set -xe + +gcc -o main main.c -Wall -Wextra -pedantic diff --git a/Advent-of-Code-2022/aoc-2/input.txt b/Advent-of-Code-2022/aoc-2/input.txt new file mode 100644 index 0000000..dd8db24 --- /dev/null +++ b/Advent-of-Code-2022/aoc-2/input.txt @@ -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/Advent-of-Code-2022/aoc-2/main.c b/Advent-of-Code-2022/aoc-2/main.c new file mode 100644 index 0000000..af65b88 --- /dev/null +++ b/Advent-of-Code-2022/aoc-2/main.c @@ -0,0 +1,70 @@ +#include <stdio.h> +#include <stdlib.h> + +#if 0 + #define PART part1 +#else + #define PART part2 +#endif + +#if 0 + #define FILENAME "sample.txt" +#else + #define FILENAME "input.txt" +#endif + +// outcome[opponent][player] +int outcome[3][3] = { + /* player rock paper scissors*/ +/* rock */ { 1, 2, 0 }, +/* paper */ { 0, 1, 2 }, +/* scissors */ { 2, 0, 1 }, +}; + +// player[opponent][player] +int player[3][3] = { + /* lose draw win */ +/* rock */ { 2, 0, 1 }, +/* paper */ { 0, 1, 2 }, +/* scissors */ { 1, 2, 0 }, +}; + +int score = 0; + +void part1(char *line) +{ + int opponent = line[0] - 'A'; + int player = line[2] - 'X'; + + score += (player + 1) + (outcome[opponent][player] * 3); +} + +void part2(char *line) +{ + int opponent = line[0] - 'A'; + int outcome = line[2] - 'X'; + + score += (player[opponent][outcome] + 1) + (outcome * 3); +} + +void parse() +{ + FILE *fp = fopen(FILENAME, "r"); + if(!fp) { + fprintf(stderr, "ERROR: Could not open file: %s\n", FILENAME); + exit(1); + } + + char line[8]; + while(fgets(line, sizeof(line), fp)) + PART(line); + + fclose(fp); +} + +int main(void) +{ + parse(); + printf("%d\n", score); + return 0; +} diff --git a/Advent-of-Code-2022/aoc-2/sample.txt b/Advent-of-Code-2022/aoc-2/sample.txt new file mode 100644 index 0000000..db60e36 --- /dev/null +++ b/Advent-of-Code-2022/aoc-2/sample.txt @@ -0,0 +1,3 @@ +A Y +B X +C Z |