Convert to larger integers

This file now solves Part 2
This commit is contained in:
2023-12-06 18:22:48 -05:00
parent 03ce5438e3
commit ebe63f32e4
2 changed files with 11 additions and 9 deletions

18
06/06.c
View File

@@ -4,11 +4,11 @@
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
#define DEFAULT_FILE "input.txt" #define DEFAULT_FILE "input3.txt"
#define STRBUF_LEN 200 #define STRBUF_LEN 200
#define ISDIGIT(X) (X >= '0' && X <= '9') #define ISDIGIT(X) (X >= '0' && X <= '9')
#define NUM_RACES 4 #define NUM_RACES 1
uint64_t parse_num(char *str) uint64_t parse_num(char *str)
{ {
@@ -21,9 +21,9 @@ uint64_t parse_num(char *str)
return num; return num;
} }
void parse_line(char *str, uint16_t *nums) void parse_line(char *str, uint64_t *nums)
{ {
uint16_t race = 0; uint64_t race = 0;
for (race = 0; race < NUM_RACES; race++) for (race = 0; race < NUM_RACES; race++)
{ {
@@ -72,9 +72,9 @@ int main(int argc, char **argv)
return 1; return 1;
} }
uint16_t times[NUM_RACES] = {0}; uint64_t times[NUM_RACES] = {0};
uint16_t dists[NUM_RACES] = {0}; uint64_t dists[NUM_RACES] = {0};
uint16_t results[NUM_RACES] = {0}; uint64_t results[NUM_RACES] = {0};
fgets(strbuf, STRBUF_LEN, file); fgets(strbuf, STRBUF_LEN, file);
parse_line(strbuf, times); parse_line(strbuf, times);
@@ -82,7 +82,7 @@ int main(int argc, char **argv)
fgets(strbuf, STRBUF_LEN, file); fgets(strbuf, STRBUF_LEN, file);
parse_line(strbuf, dists); parse_line(strbuf, dists);
uint16_t i = 0; uint64_t i = 0;
uint64_t multiplied = 1; uint64_t multiplied = 1;
for (i = 0; i < NUM_RACES; i++) for (i = 0; i < NUM_RACES; i++)
@@ -96,7 +96,7 @@ int main(int argc, char **argv)
} }
results[i] = res2 - res1 + 1; results[i] = res2 - res1 + 1;
printf("%d ", results[i]); printf("%lu ", results[i]);
multiplied *= results[i]; multiplied *= results[i];
} }

2
06/input3.txt Normal file
View File

@@ -0,0 +1,2 @@
Time: 50748685
Distance: 242101716911252