From 84e0e9d9e382344e36103c36cb9b47137a75e7d3 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Thu, 14 Dec 2017 17:24:52 +0100 Subject: day13 --- day13.cc | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 day13.cc (limited to 'day13.cc') diff --git a/day13.cc b/day13.cc new file mode 100644 index 0000000..91fb5c6 --- /dev/null +++ b/day13.cc @@ -0,0 +1,30 @@ +#include +#include +#include +#include +#include + +using namespace std; +using namespace std::placeholders; + +struct scanner { + int d, r; + bool hit(int delay=0) { return (d + delay) % (2*r - 2) == 0; } + operator int() { return hit() ? d * r : 0; } +}; + +int main() +{ + vector ss; + char _; + for (int d, r; cin >> d >> _ >> r; ) + ss.push_back({d, r}); + + cout << std::accumulate(begin(ss), end(ss), 0) << endl; + + for (int d = 0; ; d++) + if (none_of(ss.begin(), ss.end(), bind(&scanner::hit, _1, d))) { + cout << d << endl; + break; + } +} -- cgit 1.4.1