diff --git a/.vscode/tasks.json b/.vscode/tasks.json index a6df91c..6aa3af2 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -5,6 +5,8 @@ "label": "C/C++: gcc build active file", "command": "/usr/bin/g++", "args": [ + "--std", + "gnu++23", "-fdiagnostics-color=always", "-g", "${file}", @@ -28,6 +30,8 @@ "label": "C/C++: g++ build active file", "command": "/usr/bin/g++", "args": [ + "--std", + "gnu++23", "-fdiagnostics-color=always", "-g", "${file}", diff --git a/1/puzzle1p2 b/1/puzzle1p2 new file mode 100755 index 0000000..d46abf8 Binary files /dev/null and b/1/puzzle1p2 differ diff --git a/1/puzzle1p2.cpp b/1/puzzle1p2.cpp new file mode 100644 index 0000000..5d6f5cb --- /dev/null +++ b/1/puzzle1p2.cpp @@ -0,0 +1,43 @@ +#include +#include +#include +#include +#include + +using namespace std; + +list listOne{}; +list listTwo{}; + +unordered_map listTwoMap; + +int simscore = 0; + +int main(){ + + ifstream puzzle("input.txt"); + + int tempOne, tempTwo; + + while (puzzle >> tempOne >> tempTwo) + { + listOne.push_back(tempOne); + listTwo.push_back(tempTwo); + } + + puzzle.close(); + + for (int num:listTwo){ + listTwoMap[num]++; + } + + for (int listOneItem = 0; !listOne.empty(); listOneItem= listOne.front()) { + if(listTwoMap.contains(listOneItem)){ + simscore += listOneItem * listTwoMap[listOneItem]; + } + + listOne.pop_front(); + } + + printf("total simularity: %i\n", simscore); +} \ No newline at end of file