diff options
Diffstat (limited to '01.c')
-rw-r--r-- | 01.c | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -0,0 +1,43 @@ +#include <stdlib.h> +#include <stdio.h> +#include "input.h" + +#define INPUT "input/01.txt" + +void part1(struct input_int* input) { + // compute depth variations + int result = 0; + for(size_t i = 1; i < input->line_count; i++) { + if(input->lines[i] > input->lines[i-1]) + result++; + } + printf("%d\n", result); +} + +void part2(struct input_int* input) { + // compute depth variations + int result = 0; + int windowSum = input->lines[0] + input->lines[1] + input->lines[2]; + for(size_t i = 1; i < input->line_count - 2; i++) { + int newWindowSum = input->lines[i] + input->lines[i+1] + input->lines[i+2]; + if(newWindowSum > windowSum) + result++; + + windowSum = newWindowSum; + } + printf("%d\n", result); +} + +int main() { + // read input + struct input_int input; + input_int_read(&input, INPUT); + + // do stuff + part1(&input); + part2(&input); + + // cleanup & exit + input_int_free(&input); + return 0; +} |