2022-01
This commit is contained in:
parent
719b18ae04
commit
3fdfd035b1
@ -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
|
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user