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

2
06/input3.txt Normal file
View File

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