From efaeaf94ce8247d20eaea0357b08be3a69a3354e Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Tue, 11 Dec 2018 00:10:57 -0500 Subject: Solve day 11 part 1 --- 2018/day11.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 2018/day11.c (limited to '2018') 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 +#include +#include + +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); +} -- cgit 1.4.1