From 29e7ead1b989015115618ceb1f51a43057eae9aa Mon Sep 17 00:00:00 2001 From: kageru Date: Tue, 11 Dec 2018 15:00:28 +0100 Subject: [PATCH] (C) day 11 part 2 done --- 11/day11.c | 2 +- 11/day11_2.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- 3 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 11/day11_2.c diff --git a/11/day11.c b/11/day11.c index a64718b..f492edb 100644 --- a/11/day11.c +++ b/11/day11.c @@ -24,7 +24,7 @@ int initialFieldValue(int x, int y) { // manually set a nullbyte after the hundreds digit itoa[len-2] = 0; int parsed = (int) strtol(&itoa[len-3], NULL, 10); - return parsed; + return parsed - 5; } void setFields(int fields[DIMENSIONS][DIMENSIONS]) { diff --git a/11/day11_2.c b/11/day11_2.c new file mode 100644 index 0000000..5ee0342 --- /dev/null +++ b/11/day11_2.c @@ -0,0 +1,86 @@ +#include +#include + +#define SERIAL 7347 +#define DIMENSIONS 300 + +int initialFieldValue(int x, int y) { + int id = x + 10; + int power = id * y + SERIAL; + power *= id; + char itoa [10]; + int len = sprintf(itoa, "%d", power); + if (len < 3) { + return 0; + } + // manually set a nullbyte after the hundreds digit + itoa[len-2] = 0; + int parsed = (int) strtol(&itoa[len-3], NULL, 10); + return parsed - 5; +} + +void setFields(int fields[DIMENSIONS][DIMENSIONS]) { + for (int i=0; i b ? a : b; +} + +int calculateNeighborhood(int fields[DIMENSIONS][DIMENSIONS], int x, int y, int size) { + return fields[x-1][y-1] + fields[x+size][y+size] - fields[x-1][y+size] - fields[x+size][y-1]; +} + +int main() { + int fields[DIMENSIONS][DIMENSIONS]; + setFields(fields); + int summedAreaFields[DIMENSIONS][DIMENSIONS]; + setSummedArea(summedAreaFields, fields); + + // Part 1 + int maxPower = -999999999; + int maxX, maxY; + int maxSize = 0; + for (int x=1; x maxPower) { + maxPower = moore; + maxX = x + 1; + maxY = y + 1; + maxSize = size + 1; + } + } + } + } + printf("x: %d, y: %d, size: %d, power: %d\n", maxX, maxY, maxSize, maxPower); + + return 0; +} diff --git a/README.md b/README.md index 78250b1..8ede50f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## Tickets | Lang. | 1 | 2 | 3 | 4 | 5 | |:-------|---|---|---|---|---| -| C | x | x | x | | | +| C | x | x | x | x | | | Go | x | x | | | | | Kotlin | x | x | | | | | Python | x | | | | |