From 5c505911c9a0da95ae4bca311abc5902fbbcb1f3 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Mon, 25 Dec 2017 15:34:32 +0100 Subject: day24 --- day24.cc | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 day24.cc (limited to 'day24.cc') diff --git a/day24.cc b/day24.cc new file mode 100644 index 0000000..64e33b0 --- /dev/null +++ b/day24.cc @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include +#include + +using namespace std; + + +int +main() +{ + vector> d; + + int a, b; + char _; + while (cin >> a >> _ >> b) + d.emplace_back(a, b); + + deque>>> q{ {0,{}} }; + + int p1 = 0; + int p2 = 0, p2l = 0; + while (!empty(q)) { + auto [s, v] = q.front(); + q.pop_front(); + + int sum = accumulate(begin(v), end(v), 0, + [](int i, auto &g) { return i + g.first + g.second; }); + p1 = max(p1, sum); + if (size(v) > p2l) { + p2 = 0; + p2l = size(v); + } + if (p2l == size(v)) + p2 = max(p2, sum); + + for (auto p : d) + if (p.first == s || p.second == s) { + if (find(begin(v), end(v), p) != end(v)) + continue; + + vector v2 = v; + v2.emplace_back(p); + q.emplace_back(p.first == s ? p.second : p.first, v2); + } + } + + cout << p1 << endl << p2 << endl; // 2006 1994 +} -- cgit 1.4.1