This commit is contained in:
Evan Burkey 2022-12-02 08:10:58 -08:00
parent 719b18ae04
commit 3fdfd035b1
3 changed files with 41 additions and 9 deletions

View File

@ -21,10 +21,6 @@ file(COPY input DESTINATION ${CMAKE_BINARY_DIR})
add_executable(advent ${SRC} ${SRC2015} ${SRC2016} ${SRC2017} ${SRC2018} ${SRC2019} ${SRC2020} ${SRC2021} ${SRC2022}) add_executable(advent ${SRC} ${SRC2015} ${SRC2016} ${SRC2017} ${SRC2018} ${SRC2019} ${SRC2020} ${SRC2021} ${SRC2022})
if ((${CMAKE_SYSTEM_NAME} STREQUAL "Darwin"))
set(OPENSSL_ROOT_DIR /opt/homebrew/opt/openssl@3)
endif()
if ((${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")) if ((${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD"))
target_link_libraries(advent PRIVATE flint) target_link_libraries(advent PRIVATE flint)
target_include_directories(advent PRIVATE include lib/libflint/include lib/uthash/src) target_include_directories(advent PRIVATE include lib/libflint/include lib/uthash/src)
@ -33,6 +29,7 @@ elseif ((${CMAKE_SYSTEM_NAME} STREQUAL "Linux"))
target_link_libraries(advent PRIVATE bsd flint ${OPENSSL_LIBRARIES}) target_link_libraries(advent PRIVATE bsd flint ${OPENSSL_LIBRARIES})
target_include_directories(advent PRIVATE include lib/libflint/include lib/uthash/src ${OpenSSL_INCLUDE_DIR}) target_include_directories(advent PRIVATE include lib/libflint/include lib/uthash/src ${OpenSSL_INCLUDE_DIR})
elseif ((${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")) elseif ((${CMAKE_SYSTEM_NAME} STREQUAL "Darwin"))
set(OPENSSL_ROOT_DIR /opt/homebrew/opt/openssl@3)
set(OpenSSL_INCLUDE_DIR /opt/homebrew/opt/openssl@3/include) set(OpenSSL_INCLUDE_DIR /opt/homebrew/opt/openssl@3/include)
find_package(OpenSSL REQUIRED) find_package(OpenSSL REQUIRED)
target_link_libraries(advent PRIVATE flint ${OPENSSL_LIBRARIES}) target_link_libraries(advent PRIVATE flint ${OPENSSL_LIBRARIES})

@ -1 +1 @@
Subproject commit fc508da8fe7ce794ec7f9cdf274ca0ec0ec709b7 Subproject commit 25a8c5004d7c213dc5a098625ab15a0435a90105

View File

@ -1,10 +1,45 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#include <limits.h>
#include "lfinput.h" #include "lfinput.h"
#include "lflinkedlist.h"
static int cmp(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}
void advent2022day01(void) { void advent2022day01(void) {
char *input = get_input("input/2022/01"); char *found, *input = get_input("input/2022/01");
printf("Solution for Day 01 of 2022 is not completed yet\n"); const char *errstr;
int t = 0;
List* totals = malloc(sizeof(List));
ll_init(totals, free);
while ((found = strsep(&input, "\n")) != NULL) {
if (strcmp(found, "") == 0) {
int *i = malloc(sizeof(int));
*i = t;
ll_ins_next(totals, totals->tail, (void*)i);
t = 0;
} else {
t += (int)(strtonum(found, 0, INT_MAX, &errstr));
}
}
int elves[totals->size];
int i = 0;
LL_ITER(totals) {
elves[i++] = *(int*)(node->data);
}
qsort(elves, totals->size, sizeof(int), cmp);
printf("%d\n", elves[totals->size - 1]);
printf("%d\n", elves[totals->size - 1] + elves[totals->size - 2] + elves[totals->size - 3]);
ll_destroy(totals);
free(input); free(input);
} }