Advent of code 2025 (not proud)
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