commit 8e308a8b6f1cd70d172aed00b55b051b9b6dfb5a
parent 96dd562b534a326824aa829de48c0a0bd90c68a9
Author: bsandro <email@bsandro.tech>
Date: Sat, 6 Dec 2025 08:59:11 +0200
day06 p1; p2 is not finished yet
Diffstat:
| M | day06.c | | | 29 | +++++++++++++++++------------ |
1 file changed, 17 insertions(+), 12 deletions(-)
diff --git a/day06.c b/day06.c
@@ -4,7 +4,7 @@
// tail -n1 inputs/day06.txt | sed 's/\s/\n/g'|sort|grep '+\|*'|wc -l
#define W 1001
-#define H 5
+#define H 4
#define DIG 4
typedef struct {
@@ -28,23 +28,28 @@ uint64_t part1(int numbers[H][W], int x, char c) {
return num;
}
-void reverse(char symbols[DIG]) {
- for (int i=0;i<DIG/2;++i) {
- char t = symbols[i];
- symbols[i] = symbols[DIG-i-1];
- symbols[DIG-i-1] = t;
+void align(char symbols[DIG]) {
+ if (symbols[DIG-1]!=0) return;
+ int cur = DIG-1;
+ for (int i=DIG-1;i>=0;--i) {
+ if (symbols[i]!=0) {
+ symbols[cur--] = symbols[i];
+ symbols[i] = 0;
+ }
}
}
uint64_t part2(Number digits[H][W], int x, char c) {
uint64_t num = 0;
for (int y=0;y<H;++y) {
- for (int d=0;d<DIG;++d) {
- Number n = digits[y][x];
- printf("%2c",n.symbols[d]>0?n.symbols[d]:'0');
- }
- printf("\n");
+ printf("%c",digits[y][x].symbols[DIG-1]);
+ //for (int d=DIG-1;d>=0;--d) {
+ // Number n = digits[y][x];
+ //printf("%2c",n.symbols[d]>0?n.symbols[d]:'0');
+ //}
+ //printf("\n");
}
+ printf("\n");
(void)c;
return num;
}
@@ -65,7 +70,7 @@ int main(void) {
} else if (c==' '||c=='\n') {
if (bufl!=0) {
numbers[y][x] = btoi(buf, bufl);
- reverse(digits[y][x].symbols);
+ align(digits[y][x].symbols);
bufl = 0;
x++;
}