Advent of code 2025 (not proud)
at main 1.3 kB view raw
1#include <math.h> 2#include <stdio.h> 3#include <stdlib.h> 4 5 6int to_int(char* line, ssize_t nread) { 7 8 9 line = realloc(line, (nread-2)*sizeof(char)); 10 line++; 11 12 return atoi(line); 13 14 15} 16 17 18int sign(int num) { 19 return ((num%2)+((num+1)%2)); 20} 21 22int main(int argc, char *argv[]) { 23 24 FILE *f = fopen(argv[1], "rw"); 25 char *line = NULL; 26 char m; 27 size_t size = 0; 28 int move; 29 ssize_t nread; 30 int password = 0; 31 int dial = 50; 32 33 34 while ((nread = getline(&line, &size, f))!= -1) { 35 printf("%s, ",line); 36 m = line[0]; 37 move = to_int(line, nread); 38 if (m == 'R' ) { 39 for (int i = 0; i<move; i++) { 40 dial++; 41 if (dial==100) { 42 dial = 0; 43 password++; 44 } 45 } 46 } else { 47 for (int i = 0; i<move; i++) { 48 dial--; 49 if (dial==0) { 50 password++; 51 } 52 if (dial == -1) { 53 dial = 99; 54 } 55 } 56 } 57 58 59 60 printf("%d, dial at :", to_int(line, nread)); 61 printf("%d\n", dial); 62 } 63 64 printf("password: %d",password); 65 66 free(line); 67 fclose(f); 68 69 return 0; 70} 71