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 | | | | |