From 8c96639ec1f6757570510fc27f1c5fabece35eaf Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sun, 16 Nov 2025 13:23:34 +0100 Subject: aoc 2018, days 1-11 --- 2018/src/day01.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 2018/src/day01.cpp (limited to '2018/src/day01.cpp') diff --git a/2018/src/day01.cpp b/2018/src/day01.cpp new file mode 100644 index 0000000..d57a187 --- /dev/null +++ b/2018/src/day01.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include +#include +#include + +using namespace std; + +namespace { + +vector +read_file(const filesystem::path& filename) +{ + ifstream file{ filename }; + vector values; + + for ( long value = 0; file >> value; ) { + values.emplace_back(value); + } + + return values; +} + +void +part1(const vector& values) +{ + auto sum = accumulate(values.begin(), values.end(), 0L); + cout << "Part1: " << sum << '\n'; +} + +void +part2(const vector& values) +{ + unordered_set seen; + + long sum = 0; + for ( size_t idx = 0;; ++idx ) { + sum += values.at(idx % values.size()); + + if ( seen.contains(sum) ) { + cout << "Part2: " << sum << '\n'; + return; + } + + seen.emplace(sum); + } +} + +} // namespace + +int +main() +{ + auto values = read_file("data/day01.txt"); + part1(values); + part2(values); +} -- cgit v1.3