diff options
author | kaiwu <kaiwu2004@gmail.com> | 2023-02-14 11:45:48 +0800 |
---|---|---|
committer | kaiwu <kaiwu2004@gmail.com> | 2023-02-14 11:45:48 +0800 |
commit | c98f08c412db75146f97b0a85375d8162af15e32 (patch) | |
tree | 60687a0d541a237973eebe6cbb8399edc83c7d56 | |
parent | 7433c1c2b67b306e42d69209e5e67f79ec24b646 (diff) | |
download | advent-of-code-c98f08c412db75146f97b0a85375d8162af15e32.tar.gz advent-of-code-c98f08c412db75146f97b0a85375d8162af15e32.zip |
2017 day21 part1
-rw-r--r-- | src/2017/day21/aoc.h | 76 |
1 files changed, 75 insertions, 1 deletions
diff --git a/src/2017/day21/aoc.h b/src/2017/day21/aoc.h index c41c88a..fe2fc56 100644 --- a/src/2017/day21/aoc.h +++ b/src/2017/day21/aoc.h @@ -3,5 +3,79 @@ #include <vector> namespace aoc2017 { + +struct square2 { + char s[4] = {0}; + + // ../.. + square2(const std::string& ss) { + s[0] = *ss.data(); + s[1] = *(ss.data() + 1); + s[2] = *(ss.data() + 3); + s[3] = *(ss.data() + 4); + } + std::vector<square2> flip() { return {}; } + std::vector<square2> rotate() { return {}; } + std::string to_string() { + char sx[6] = {0}; + sprintf(sx, "%c%c/%c%c", s[0], s[1], s[2], s[3]); + return sx; + } +}; + +struct square3 { + char s[9] = {0}; + + // .../.../... + square3(const std::string& ss) { + s[0] = *ss.data(); + s[1] = *(ss.data() + 1); + s[2] = *(ss.data() + 2); + + s[3] = *(ss.data() + 4); + s[4] = *(ss.data() + 5); + s[5] = *(ss.data() + 6); + + s[6] = *(ss.data() + 8); + s[7] = *(ss.data() + 9); + s[8] = *(ss.data() + 10); + } + std::vector<square3> flip() { return {}; } + std::vector<square3> rotate() { return {}; } + std::string to_string() { + char sx[12] = {0}; + sprintf(sx, "%c%c%c/%c%c%c/%c%c%c", s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8]); + return sx; + } +}; + +struct square4 { + char s[16] = {0}; + + // ##../#.../..../..#. + square4(const std::string& ss) { + s[0] = *ss.data(); + s[1] = *(ss.data() + 1); + s[2] = *(ss.data() + 2); + s[3] = *(ss.data() + 3); + + s[4] = *(ss.data() + 5); + s[5] = *(ss.data() + 6); + s[6] = *(ss.data() + 7); + s[7] = *(ss.data() + 8); + + s[8] = *(ss.data() + 10); + s[9] = *(ss.data() + 11); + s[10] = *(ss.data() + 12); + s[11] = *(ss.data() + 13); + + s[12] = *(ss.data() + 15); + s[13] = *(ss.data() + 16); + s[14] = *(ss.data() + 17); + s[15] = *(ss.data() + 18); + } + std::vector<square2> partition() { return {}; } +}; + std::pair<int64_t, int64_t> day21(line_view); -} +} // namespace aoc2017 |