advent2025

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

commit 16ae6cebdf9f4dd2086138d5db0381dccd67c6ce
parent 37fe582c54b04e8e8cd7a2967b8887039d3ab047
Author: bsandro <email@bsandro.tech>
Date:   Mon,  1 Dec 2025 22:53:53 +0200

day01 cleanup

Diffstat:
Mday01.c | 26++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/day01.c b/day01.c @@ -1,6 +1,8 @@ #include <stdio.h> #include "cputime.h" +#define DIAL 100 + int main(void) { int cur = 50; int p1 = 0; @@ -10,30 +12,30 @@ int main(void) { int bufs = 0; int cnt = 0; for (char c=getchar();c!=EOF;c=getchar()) { - // sscanf() was here but it felt slow if (c=='L'||c=='R') { dir = c; cnt = 0; } else if (c>='0'&&c<='9') { buf[bufs++] = c-'0'; - } else if (c=='\n') { + } else if (c=='\n') { // sscanf() felt slow for (int i=0;i<bufs;++i) { - cnt = cnt*10+buf[i]; + cnt = cnt*10+buf[i]; // reinventing atoi + } + if (cnt>=DIAL) { + p2 += cnt/DIAL; + cnt = cnt%DIAL; } - if (cnt>99) p2+=cnt/100; - cnt = cnt%100; if (dir=='L') { if (cur&&cnt>cur) p2++; - cur-=cnt; - if (cur<0) cur=100+cur; + cur -= cnt; + if (cur<0) cur=DIAL+cur; } else if (dir=='R') { - if (cur+cnt>100) p2++; - cur+=cnt; - if (cur>99) cur=cur-100; + if (cur+cnt>DIAL) p2++; + cur += cnt; + if (cur>=DIAL) cur = cur-DIAL; } if (cur==0) { p1++; p2++; } - cnt=0; - bufs=0; + bufs = cnt = 0; } } printf("p1: %d\np2: %d\n", p1, p2);