#include #include #include #include #include #include void part1(std::vector A, std::vector B) { std::sort(A.begin(), A.end()); std::sort(B.begin(), B.end()); int sum = 0; for (auto [x, y] : std::views::zip(A, B)) { sum += std::abs(x - y); } std::println("{}", sum); } void part2(std::vector A, std::vector B) { std::map _A, _B; for (auto a : A) { _A[a]++; } for (auto b : B) { _B[b]++; } int sum = 0; for (auto a : _A) { sum += a.first * a.second * _B[a.first]; } std::println("{}", sum); } int main() { std::vector A, B; int a, b; while (std::cin >> a >> b) { A.push_back(a); B.push_back(b); } part1(A, B); part2(A, B); return 0; }