diff options
Diffstat (limited to 'src/2022/day3/aoc.cpp')
-rw-r--r-- | src/2022/day3/aoc.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/2022/day3/aoc.cpp b/src/2022/day3/aoc.cpp new file mode 100644 index 0000000..9be1bf0 --- /dev/null +++ b/src/2022/day3/aoc.cpp @@ -0,0 +1,29 @@ +#include "aoc.h" +#include <algorithm> +#include <vector> + +namespace aoc2022 { +std::pair<int, int> day3(line_view file) { + int s2{0}, s3{0}; + int g{0}; + rucksacks r3; + per_line(file, [&s2, &s3, &g, &r3](line_view lv) { + int i = g++ % 3; + if (i == 0) { + r3.reset(); + } + rucksacks r2; + r2.load(lv); + s2 += r2.score(); + + r3.load(lv, i); + if (i == 2) { + s3 += r3.score3(); + } + return true; + }); + + return {s2, s3}; +} + +} // namespace aoc2022 |