#include #include #include "input.h" #define INPUT "input/01.txt" #define EXPECTED1 1466L #define EXPECTED2 1491L void part1(struct input_int* input) { // compute depth variations long result = 0; for(size_t i = 1; i < input->line_count; i++) { if(input->lines[i] > input->lines[i-1]) result++; } CHECK(result, EXPECTED1) } void part2(struct input_int* input) { // compute depth variations long 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; } CHECK(result, EXPECTED2) } 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; }