aboutsummaryrefslogtreecommitdiff
path: root/src/2022/day13/aoc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/2022/day13/aoc.cpp')
-rw-r--r--src/2022/day13/aoc.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/2022/day13/aoc.cpp b/src/2022/day13/aoc.cpp
index 793d5eb..fb71da4 100644
--- a/src/2022/day13/aoc.cpp
+++ b/src/2022/day13/aoc.cpp
@@ -1,8 +1,26 @@
#include "aoc.h"
+#include <iostream>
namespace aoc2022 {
-std::pair<int, int> day13(line_view) {
- return {0, 0};
+std::pair<int, int> day13(line_view file) {
+ int count{0};
+ int pair{0};
+ packet* ps[2] = {nullptr, nullptr};
+ per_line(file, [&pair, &count, &ps](line_view lv){
+ if (lv.length > 1) {
+ int i = pair % 2;
+ ps[i] = new packet;
+ const char* p = lv.line;
+ packet::load(&p, &ps[i]);
+ if (i == 1 && *(ps[0]) < *(ps[1])) {
+ printf("group[%d] is in right order\n", pair/2 + 1);
+ count += pair / 2 + 1;
+ }
+ pair += 1;
+ }
+ return true;
+ });
+ return {count, 0};
}
}