Index: aoc2025.c ================================================================== --- aoc2025.c +++ aoc2025.c @@ -13,10 +13,38 @@ void aocYYYYDD(char *data, size_t len) { (void)len; // unused argument } #endif + +/* === aoc202509 ======================================================= +===================================================================== */ +struct iCoords { + int row, col; +}; + +void aoc202509(char *data, size_t len) { + (void)len; // unused argument + struct iCoords p[512] = {0}; + char *err = data; + int k = 0; + while (*err) { + p[k].row = strtol(err, &err, 10); + if (*err != ',') break; + err++; + p[k++].col = strtol(err, &err, 10); + } + long long max_area = 0; + for (int i = 0; i < k; i++) { + for (int j = i + 1; j < k; j++) { + long long area = 1LL * (abs(p[i].col - p[j].col) + 1) + * (abs(p[i].row - p[j].row) + 1); + if (area > max_area) max_area = area; + } + } + printf("P1: %lld\n", max_area); +} /* === aoc202508 ======================================================= ===================================================================== */ void aoc202508(char *data, size_t len) { (void)data; // unused argument Index: aocdailies.c ================================================================== --- aocdailies.c +++ aocdailies.c @@ -4,10 +4,11 @@ aocfunc *aocselect(unsigned y, unsigned d) { aocfunc *p; switch (y * 100 + d) { default: p = NULL; break; + case 202509: p = aoc202509; break; case 202508: p = aoc202508; break; case 202507: p = aoc202507; break; case 202506: p = aoc202506; break; case 202505: p = aoc202505; break; case 202504: p = aoc202504; break; Index: aocdailies.h ================================================================== --- aocdailies.h +++ aocdailies.h @@ -4,10 +4,11 @@ #include typedef void aocfunc(char *, size_t); aocfunc *aocselect(unsigned, unsigned); +aocfunc aoc202509; aocfunc aoc202508; aocfunc aoc202507; aocfunc aoc202506; aocfunc aoc202505; aocfunc aoc202504;