aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaiwu <kaiwu2004@gmail.com>2023-02-14 11:45:48 +0800
committerkaiwu <kaiwu2004@gmail.com>2023-02-14 11:45:48 +0800
commitc98f08c412db75146f97b0a85375d8162af15e32 (patch)
tree60687a0d541a237973eebe6cbb8399edc83c7d56
parent7433c1c2b67b306e42d69209e5e67f79ec24b646 (diff)
downloadadvent-of-code-c98f08c412db75146f97b0a85375d8162af15e32.tar.gz
advent-of-code-c98f08c412db75146f97b0a85375d8162af15e32.zip
2017 day21 part1
-rw-r--r--src/2017/day21/aoc.h76
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