From 48a61ce53f605683f40dedf561c92d0b7db03062 Mon Sep 17 00:00:00 2001 From: Orfeas <38209077+0xfea5@users.noreply.github.com> Date: Sun, 24 Aug 2025 02:02:12 +0300 Subject: day01: done --- day01/solution.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 day01/solution.cpp (limited to 'day01/solution.cpp') diff --git a/day01/solution.cpp b/day01/solution.cpp new file mode 100644 index 0000000..b19504e --- /dev/null +++ b/day01/solution.cpp @@ -0,0 +1,51 @@ +#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; +} -- cgit v1.2.3