diff options
author | kaiwu <kaiwu2004@gmail.com> | 2023-02-08 17:00:53 +0800 |
---|---|---|
committer | kaiwu <kaiwu2004@gmail.com> | 2023-02-08 17:00:53 +0800 |
commit | 204146e91d1ff8b625c9c91a5a93e85c8408c801 (patch) | |
tree | 5bc22e86df93960f5682ee519a4c123c0d3535ea | |
parent | f16c630fad1481f7097b4c514739e15b2cddb334 (diff) | |
download | advent-of-code-204146e91d1ff8b625c9c91a5a93e85c8408c801.tar.gz advent-of-code-204146e91d1ff8b625c9c91a5a93e85c8408c801.zip |
2017 day13
-rw-r--r-- | src/2017/day13/aoc.cpp | 13 | ||||
-rw-r--r-- | src/2017/day13/aoc.h | 37 |
2 files changed, 48 insertions, 2 deletions
diff --git a/src/2017/day13/aoc.cpp b/src/2017/day13/aoc.cpp index e112b3e..e3cf129 100644 --- a/src/2017/day13/aoc.cpp +++ b/src/2017/day13/aoc.cpp @@ -2,5 +2,16 @@ namespace aoc2017 { -std::pair<int64_t, int64_t> day13(line_view) { return {0, 0}; } +std::pair<int64_t, int64_t> day13(line_view file) { + std::vector<scanner> vs; + per_line(file, [&vs](line_view lv) { + vs.emplace_back(lv); + return true; + }); + + // for (auto& s: vs) { + // s.print(); + // } + return {0, 0}; +} } // namespace aoc2017 diff --git a/src/2017/day13/aoc.h b/src/2017/day13/aoc.h index 5baa78a..5e46b4f 100644 --- a/src/2017/day13/aoc.h +++ b/src/2017/day13/aoc.h @@ -3,5 +3,40 @@ #include <vector> namespace aoc2017 { + +struct scanner { + int depth = 0; + int range = 0; + + void get_number(const char** pp, int* d) { + const char* p = *pp; + while (*p >= '0' && *p <= '9') { + *d = *d * 10 + *p - '0'; + p++; + } + *pp = p; + } + + void print() const noexcept { + printf("%d %d\n", depth, range); + } + + int at_level(int t) const noexcept { + return 0; + } + + scanner(line_view lv) { + int* ds[] = {&depth, &range}; + int i{0}; + const char* p = lv.line; + while (p < lv.line + lv.length) { + if (*p >= '0' && *p <= '9') { + get_number(&p, ds[i++]); + } + p++; + } + } +}; + std::pair<int64_t, int64_t> day13(line_view); -} +} // namespace aoc2017 |