#include #include #include #include #include "../../lib/aoc.h" bool fully_contain(char *line) { int a, b, c, d; int y = sscanf(line, "%d-%d,%d-%d", &a, &b, &c, &d); return ((a <= c && b >= d) || (c <= a && d >= b)); } bool overlap(char *line) { int a, b, c, d; int y = sscanf(line, "%d-%d,%d-%d", &a, &b, &c, &d); return ((a <= c && b >= c) || (a <= d && b >= d) || (c <= a && d >= a) || (c <= b && d >= b)); } int main() { char *line; int contain_sum = 0; int overlap_sum = 0; while ((line = aoc_read_line()) != NULL) { if (fully_contain(line)) contain_sum++; if (overlap(line)) overlap_sum++; } printf("Part 1: %d\n", contain_sum); printf("Part 2: %d\n", overlap_sum); aoc_free(); return 0; }