From a937350ab20adc0f8172c4d99f4d711e92dfd947 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 5 Dec 2024 08:02:45 +0100 Subject: Day 5 2024 --- 2024/05/day05a.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 2024/05/day05a.cpp (limited to '2024/05/day05a.cpp') diff --git a/2024/05/day05a.cpp b/2024/05/day05a.cpp new file mode 100644 index 0000000..be2037e --- /dev/null +++ b/2024/05/day05a.cpp @@ -0,0 +1,53 @@ +#include +#include +#include +#include +#include +#include +using namespace std; + +vector readints(string &s) { + vector v; + stringstream sin(s); + int x; + + while (sin >> x) + v.push_back(x); + + return v; +} + +bool valid(vector &v, vector> &rules) { + for (unsigned i = 0; i < v.size(); i++) + for (unsigned j = i+1; j < v.size(); j++) + for (auto r : rules) + if (v[i] == r.second && v[j] == r.first) + return false; + return true; +} + +int main() { + string line; + vector> rules; + while (getline(cin, line)) { + if (line == "") + break; + + replace(line.begin(), line.end(), '|', ' '); + auto v = readints(line); + int x = v[0]; + int y = v[1]; + rules.push_back(make_pair(x, y)); + } + + + int tot = 0; + while (getline(cin, line)) { + replace(line.begin(), line.end(), ',', ' '); + auto v = readints(line); + if (valid(v, rules)) + tot += v[v.size()/2]; + } + cout << tot << endl; + return 0; +} -- cgit v1.3