diff options
author | June McEnroe <june@causal.agency> | 2018-12-11 00:10:57 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2018-12-11 00:10:57 -0500 |
commit | efaeaf94ce8247d20eaea0357b08be3a69a3354e (patch) | |
tree | bfb72e81d4bdf373e3e16d950073ed719b551727 /2018/day11.c | |
parent | Solve day 10 part 2 (diff) | |
download | aoc-efaeaf94ce8247d20eaea0357b08be3a69a3354e.tar.gz aoc-efaeaf94ce8247d20eaea0357b08be3a69a3354e.zip |
Solve day 11 part 1
Diffstat (limited to '')
-rw-r--r-- | 2018/day11.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/2018/day11.c b/2018/day11.c new file mode 100644 index 0000000..770ea9f --- /dev/null +++ b/2018/day11.c @@ -0,0 +1,38 @@ +#include <limits.h> +#include <stdio.h> +#include <stdlib.h> + +typedef unsigned uint; + +int main() { + uint serial; + scanf("%u", &serial); + + int cells[300][300]; + for (uint y = 0; y < 300; ++y) { + for (uint x = 0; x < 300; ++x) { + uint id = (x + 1) + 10; + cells[y][x] = id * (y + 1); + cells[y][x] += serial; + cells[y][x] *= id; + cells[y][x] /= 100; + cells[y][x] %= 10; + cells[y][x] -= 5; + } + } + + int max = INT_MIN; + uint maxY = 0, maxX = 0; + for (uint y = 0; y < 297; ++y) { + for (uint x = 0; x < 297; ++x) { + int power = cells[y][x] + cells[y][x + 1] + cells[y][x + 2] + + cells[y + 1][x] + cells[y + 1][x + 1] + cells[y + 1][x + 2] + + cells[y + 2][x] + cells[y + 2][x + 1] + cells[y + 2][x + 2]; + if (power < max) continue; + max = power; + maxY = y; + maxX = x; + } + } + printf("%u,%u\n", maxX + 1, maxY + 1); +} |