advent2025

Advent of Code 2025 Solutions
git clone git://bsandro.tech/advent2025
Log | Files | Refs | LICENSE

commit 58582e7e353c9696bd4760258a4402247dc1babd
parent 60bfcfb33293320a139d24e57b6c4867784b6e09
Author: bsandro <email@bsandro.tech>
Date:   Tue,  2 Dec 2025 22:24:20 +0200

day 02 silly optimization

Diffstat:
Mday02.c | 20+++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/day02.c b/day02.c @@ -55,20 +55,23 @@ bool is_silly2(uint64_t num) { return false; } -uint64_t sum_silly(Range range, bool (*check_silly)(uint64_t)) { - uint64_t sum = 0; +struct Res { + uint64_t p1; + uint64_t p2; +}; + +void sum_silly(Range range, struct Res *r) { for (uint64_t i=range.first;i<=range.last;++i) { - if (check_silly(i)) sum+=i; + if (is_silly1(i)) r->p1+=i; + if (is_silly2(i)) r->p2+=i; } - return sum; } int main(void) { uint64_t buf[16] = {0}; int bufs = 0; Range range = {0}; - uint64_t p1 = 0; - uint64_t p2 = 0; + struct Res r = {0}; for (int c=getchar();c!=EOF;c=getchar()) { if (c>='0'&&c<='9') { buf[bufs++] = c-'0'; @@ -78,10 +81,9 @@ int main(void) { } else if (c==','||c=='\n') { range.last = btoi(buf, bufs); bufs = 0; - p1 += sum_silly(range, is_silly1); - p2 += sum_silly(range, is_silly2); + sum_silly(range, &r); } } - printf("p1: %" PRIu64 "\np2: %" PRIu64 "\n", p1, p2); + printf("p1: %" PRIu64 "\np2: %" PRIu64 "\n", r.p1, r.p2); return 0; }