diff options
author | kaiwu <kaiwu2004@gmail.com> | 2023-02-14 16:41:15 +0800 |
---|---|---|
committer | kaiwu <kaiwu2004@gmail.com> | 2023-02-14 16:41:15 +0800 |
commit | 4c6da7a0f332d14c1f11c9427259e871c03cac50 (patch) | |
tree | a28aa7589641b64a35b9e280656f474b4fe78855 /src/2017/day21/aoc.cpp | |
parent | c98f08c412db75146f97b0a85375d8162af15e32 (diff) | |
download | advent-of-code-4c6da7a0f332d14c1f11c9427259e871c03cac50.tar.gz advent-of-code-4c6da7a0f332d14c1f11c9427259e871c03cac50.zip |
2017 day21 part1
Diffstat (limited to 'src/2017/day21/aoc.cpp')
-rw-r--r-- | src/2017/day21/aoc.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/2017/day21/aoc.cpp b/src/2017/day21/aoc.cpp index 706fa8a..716d4e6 100644 --- a/src/2017/day21/aoc.cpp +++ b/src/2017/day21/aoc.cpp @@ -1,6 +1,39 @@ #include "aoc.h" +#include <map> namespace aoc2017 { -std::pair<int64_t, int64_t> day21(line_view) { return {0, 0}; } +std::pair<int64_t, int64_t> day21(line_view file) { + std::map<std::string, std::string> rules; + + per_line(file, [&rules](line_view lv) { + const char* p0 = lv.line; + const char* p1 = p0; + std::string k; + std::string v; + while (p1 < lv.line + lv.length) { + if (*p1 == '=') { + k = std::string{p0, (size_t)(p1 - p0 - 1)}; + p0 = p1 + 3; + } + if (*p1 == '\n') { + v = std::string{p0, (size_t)(p1 - p0)}; + } + p1++; + } + rules.insert({k, v}); + return true; + }); + + // .#. + // ..# + // ### + square3 s3{".#./..#/###"}; + + // for (auto& kv : rules) { + // printf("%s => %s\n", kv.first.c_str(), kv.second.c_str()); + // } + + return {0, 0}; +} } // namespace aoc2017 |