Index: aoc2025.c ================================================================== --- aoc2025.c +++ aoc2025.c @@ -11,11 +11,53 @@ /* === aocYYYYDD ======================================================= ===================================================================== */ void aocYYYYDD(char *data, size_t len) { (void)len; // unused argument } + #endif + +/* === aoc202505 ======================================================= +===================================================================== */ +struct Range { + long long unsigned lo, hi; +}; + +void aoc202505(char *data, size_t len) { + (void)len; // unused argument + struct Range r[200] = {0}; + size_t nr = 0; + char *err; + for (;;) { + char *minus = strchr(data, '-'); + if (!minus) break; + *minus = 0; + r[nr].lo = strtoull(data, &err, 10); + *minus++ = '-'; + char *enter = strchr(minus, '\n'); + *enter = 0; + r[nr++].hi = strtoull(minus, &err, 10); + *enter++ = '\n'; + data = enter; + } + unsigned fresh = 0; + for (;;) { + long long unsigned item = strtoull(data, &err, 10); + if (err[0] != '\n') break; + if (item == 0) break; + data = err + 1; + for (size_t k = 0; k < nr; k++) { + if ((r[k].lo <= item) && (item <= r[k].hi)) { + fresh++; + break; + } + } + } + printf("There are %u fresh items.\n", fresh); + + // pause for brain storming pause +} /* === aoc202504 ======================================================= ===================================================================== */ static unsigned evolve(struct RectangularMap *rm, unsigned src) { unsigned changes = 0; 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 202505: p = aoc202505; break; case 202504: p = aoc202504; break; case 202503: p = aoc202503; break; case 202502: p = aoc202502; break; case 202501: p = aoc202501; break; Index: aocdailies.h ================================================================== --- aocdailies.h +++ aocdailies.h @@ -4,10 +4,11 @@ #include typedef void aocfunc(char *, size_t); aocfunc *aocselect(unsigned, unsigned); +aocfunc aoc202505; aocfunc aoc202504; aocfunc aoc202503; aocfunc aoc202502; aocfunc aoc202501;