day01.c (729B)
1 #include <stdio.h> 2 #include <inttypes.h> 3 #include "cputime.h" 4 5 typedef struct { 6 char data[16]; 7 int len; 8 } Buffer; 9 10 int btoi(Buffer buf) { 11 int num = 0; 12 for (int i=0;i<buf.len;++i) num = num*10+buf.data[i]; 13 return num; 14 } 15 16 int main(void) { 17 Buffer buf = {0}; 18 uint64_t p1 = 0; 19 uint64_t p2 = 0; 20 for (int c=getchar();c!=EOF;c=getchar()) { 21 if (c>='0'&&c<='9') { 22 buf.data[buf.len++] = c-'0'; 23 } else { 24 int num = btoi(buf); 25 buf.len = 0; 26 p1 += num/3-2; 27 for (int fuel=num/3-2; fuel>0; fuel=fuel/3-2) { 28 p2 += fuel; 29 } 30 } 31 } 32 printf("p1: %"PRIu64"\np2: %"PRIu64"\n", p1, p2); 33 return 0; 34 }