#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]]; } const auto [min, max] = ranges::minmax_element(counts, [](auto lhs, auto rhs) { return lhs.second < rhs.second; }); part1 += max->first; part2 += min->first; } cout << part1 << '\n' << part2 << endl; } int main() { auto lines = read_file("data/day06.txt"); solve(lines); }