aboutsummaryrefslogtreecommitdiff
path: root/src/2022/day3/aoc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/2022/day3/aoc.cpp')
-rw-r--r--src/2022/day3/aoc.cpp29
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