From 228ddc94ba315c817fe52df83a886c299a2eaaf6 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Mon, 2 Dec 2024 13:29:56 +0800 Subject: organize --- 2024/1A.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 2024/1A.cpp (limited to '2024/1A.cpp') diff --git a/2024/1A.cpp b/2024/1A.cpp new file mode 100644 index 0000000..9cffc3b --- /dev/null +++ b/2024/1A.cpp @@ -0,0 +1,41 @@ +#include +#include "readfile.hpp" + + +int main(int argc, char const *argv[]) +{ + int res = 0; + std::vector file = readfile("1.in"); + if (file.empty()) { + return 1; + } + std::vector left, right; + for (const auto &line : file) { + int n1, n2; + // put to vector + std::istringstream iss(line); + if (!(iss >> n1 >> n2)) { + std::cerr << "Invalid input line: " << line << std::endl; + return 1; + } + left.push_back(n1); + right.push_back(n2); + } + + // sort + std::sort(left.begin(), left.end()); + std::sort(right.begin(), right.end()); + + if (left.size() != right.size()) { + std::cerr << "size mismatch: " << left.size() << " vs " << right.size() << std::endl; + return 1; + } + + // calc total distant + for (int i = 0; i < left.size(); i++) { + res += std::abs(left[i] - right[i]); + } + + std::cout << "Result: " << res << std::endl; + return 0; +} -- cgit v1.2.3