Streamline 2024 day 1

This commit is contained in:
SebastianStork 2024-12-05 20:34:59 +01:00
parent 174fb9a1d6
commit 4f97d0680c

View file

@ -1,47 +1,35 @@
#include <fstream>
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
void sort(vector<int> &list)
void readInput(vector<int> &list1, vector<int> &list2)
{
for (size_t i = 0; i < list.size() - 1; i++) {
for (size_t j = i + 1; j < list.size(); j++) {
if (list[i] > list[j]) {
int temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
int value1, value2;
while (cin >> value1 >> value2) {
list1.push_back(value1);
list2.push_back(value2);
}
}
int main()
void sortLists(vector<int> &list1, vector<int> &list2)
{
vector<int> list1, list2;
sort(list1.begin(), list1.end());
sort(list2.begin(), list2.end());
}
{
ifstream inputFile("input");
string line;
while (getline(inputFile, line)) {
list1.push_back(stoi(line.substr(0, 5)));
list2.push_back(stoi(line.substr(8, 5)));
}
}
sort(list1);
sort(list2);
// Part one
int calculateTotalDistance(const vector<int> &list1, const vector<int> &list2)
{
int totalDistance = 0;
for (size_t i = 0; i < list1.size(); i++) {
int distance = list1[i] - list2[i];
totalDistance += (distance >= 0) ? distance : -distance;
totalDistance += abs(list1[i] - list2[i]);
}
cout << "Total distance between the lists: " << totalDistance << endl;
return totalDistance;
}
// Part two
int calculateSimilarityScore(const vector<int> &list1, const vector<int> &list2)
{
int similarityScore = 0;
size_t index2 = 0;
for (size_t index1 = 0; index1 < list1.size(); index1++) {
@ -53,5 +41,19 @@ int main()
index2++;
}
}
cout << "Similarity Score: " << similarityScore << endl;
return similarityScore;
}
int main()
{
vector<int> list1, list2;
readInput(list1, list2);
sortLists(list1, list2);
// Part one
cout << "Total distance between the lists: " << calculateTotalDistance(list1, list2) << endl;
// Part two
cout << "Similarity Score: " << calculateSimilarityScore(list1, list2) << endl;
}