This commit is contained in:
Hugo Mårdbrink 2024-12-01 14:01:27 +01:00
parent 832cd997b3
commit a04b71939c
3 changed files with 50 additions and 9 deletions

View file

@ -1,15 +1,56 @@
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <unordered_map>
#include <algorithm>
using std::cout, std::endl;
int main() {
std::ifstream file{"../d1/input.txt"};
std::string line;
constexpr const char content[] = {
#embed "input.txt"
};
while (std::getline(file, line)) {
void part_1() {
std::vector<int> left_vec, right_vec;
std::istringstream iss{content};
int l_id, r_id;
while (iss >> l_id >> r_id) {
left_vec.emplace_back(l_id);
right_vec.emplace_back(r_id);
}
std::sort(left_vec.begin(), left_vec.end());
std::sort(right_vec.begin(), right_vec.end());
auto diff_acc{0};
for (auto i{0}; i < left_vec.size(); i++) {
diff_acc += std::abs(left_vec[i] - right_vec[i]);
}
cout << diff_acc << endl;
}
void part_2() {
std::vector<int> left_vec;
std::unordered_map<int, int> right_map;
std::istringstream iss{content};
int l_id, r_id;
while (iss >> l_id >> r_id) {
left_vec.emplace_back(l_id);
right_map[r_id]++;
}
auto sim_acc{0};
for (auto left_num : left_vec) {
sim_acc += right_map[left_num] * left_num;
}
cout << sim_acc << endl;
}
int main() {
part_1();
part_2();
return 0;
}