diff options
author | kaiwu <kaiwu2004@gmail.com> | 2023-01-20 21:32:03 +0800 |
---|---|---|
committer | kaiwu <kaiwu2004@gmail.com> | 2023-01-20 21:32:03 +0800 |
commit | 7f9d12aec6e9bb37ad8f02550f24406827c4c691 (patch) | |
tree | eb64b4aac33407dac782fffb6b439cea9b06d16c /src/2016/day12/aoc.cpp | |
parent | d4206dc7bb5d7fb28cf874822bc4bcc10eafd880 (diff) | |
download | advent-of-code-7f9d12aec6e9bb37ad8f02550f24406827c4c691.tar.gz advent-of-code-7f9d12aec6e9bb37ad8f02550f24406827c4c691.zip |
2016 day12
Diffstat (limited to 'src/2016/day12/aoc.cpp')
-rw-r--r-- | src/2016/day12/aoc.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/2016/day12/aoc.cpp b/src/2016/day12/aoc.cpp index aac00ff..bd3a395 100644 --- a/src/2016/day12/aoc.cpp +++ b/src/2016/day12/aoc.cpp @@ -84,14 +84,14 @@ void jnz(size_t* i, const char* p) { void non(size_t* i, const char* p) { *i += 1; } -void exec(size_t i, const std::vector<instruction>& todos) { +size_t exec(size_t i, const std::vector<instruction>& todos) { if (i < todos.size()) { todo_f fs[5] = {cpy, inc, dec, jnz, non}; auto d = todos[i]; - std::cout << d.todo << std::endl; + // std::cout << d.todo << std::endl; fs[d.which()](&i, d.todo.line + 4); - exec(i, todos); } + return i; } std::pair<int64_t, int64_t> day12(line_view file) { @@ -100,7 +100,11 @@ std::pair<int64_t, int64_t> day12(line_view file) { todos.emplace_back(line_view{lv.line, lv.length - 1}); return true; }); - // exec(0, todos); - return {0, 0}; + size_t i = 0; + while (i < todos.size()) { + i = exec(i, todos); + } + + return {registers[0], 0}; } } // namespace aoc2016 |