#include #include #include #include "../../lib/aoc.h" int main() { char *line; int left[1000]; int right[1000]; int index = 0; while ((line = aoc_read_line()) != NULL) { int l, r; sscanf(line, "%d %d", &l, &r); left[index] = l; right[index] = r; index++; } qsort(left, 1000, sizeof(int), aoc_sort_int); qsort(right, 1000, sizeof(int), aoc_sort_int); int sum = 0; for (int i = 0; i < 1000; i++) { sum += abs(left[i] - right[i]); } printf("Part 1: %d\n", sum); int similarity_score = 0; for (int i = 0; i < 1000; i++) { int right_count = 0; for (int j = 0; j < 1000; j++) { if (left[i] == right[j]) right_count++; } similarity_score += (left[i] * right_count); } printf("Part 2: %d\n", similarity_score); aoc_free(); return 0; }