Day 1
This commit is contained in:
parent
832cd997b3
commit
a04b71939c
3 changed files with 50 additions and 9 deletions
55
d1/main.cxx
55
d1/main.cxx
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue