diff options
Diffstat (limited to 'src/2022/day13/aoc.cpp')
-rw-r--r-- | src/2022/day13/aoc.cpp | 22 |
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}; } } |