From d396dc3221fcf893c885bd9a370b9a30f25b31dd Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sun, 12 Jan 2025 17:36:26 +0100 Subject: aoc 2016, days 4, 5, 6 --- 2016/src/day06.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 2016/src/day06.cpp (limited to '2016/src/day06.cpp') diff --git a/2016/src/day06.cpp b/2016/src/day06.cpp new file mode 100644 index 0000000..5bd0f93 --- /dev/null +++ b/2016/src/day06.cpp @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +vector +read_file(string_view filename) +{ + fstream input{ filename }; + + vector lines; + + for ( string line; getline(input, line); ) { + lines.emplace_back(line); + } + + return lines; +} + +void +solve(const vector& lines) +{ + string part1; + string part2; + + for ( size_t col = 0; col != lines[0].length(); ++col ) { + map counts; + for ( const auto& line: lines ) { + ++counts[line[col]]; + } + + part1 += max_element(counts.begin(), counts.end(), [](auto lhs, auto rhs) { return lhs.second < rhs.second; })->first; + part2 += min_element(counts.begin(), counts.end(), [](auto lhs, auto rhs) { return lhs.second < rhs.second; })->first; + } + + cout << part1 << '\n' + << part2 << endl; +} + +int +main() +{ + auto lines = read_file("data/day06.txt"); + solve(lines); +} -- cgit v1.3