diff --git a/c/2024/22/monkey_market.c b/c/2024/22/monkey_market.c new file mode 100644 index 0000000..2abed54 --- /dev/null +++ b/c/2024/22/monkey_market.c @@ -0,0 +1,43 @@ +#include +#include +#include +#include + +#include "../../lib/aoc.h" + +void mix(long *secret, long value) { + *secret = *secret ^ value; +} + +void prune(long *secret) { + *secret %= 16777216l; +} + +int main() { + char *line; + long secret; + long answer = 0; + while ((line = aoc_read_line()) != NULL) { + secret = atol(line); + for (int i = 0; i < 2000; i++) { + long guy = secret * 64; + mix(&secret, guy); + prune(&secret); + + guy = secret / 32; + mix(&secret, guy); + prune(&secret); + + guy = secret * 2048; + mix(&secret, guy); + prune(&secret); + } + + answer += secret; + } + + printf("Part 1: %ld", answer); + + aoc_free(); + exit(0); +}