aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkaiwu <kaiwu2004@gmail.com>2022-04-19 19:22:37 +0800
committerkaiwu <kaiwu2004@gmail.com>2022-04-19 19:22:37 +0800
commitafdd58189c94f793d7bd892ec3f2f476b596b7fa (patch)
treebecfb8a40a0a307835bf715b68b81f30c8acc41e /src
parent73adf92fd06a5bb252c8a3e0e17b1221cae590cb (diff)
downloadadvent-of-code-afdd58189c94f793d7bd892ec3f2f476b596b7fa.tar.gz
advent-of-code-afdd58189c94f793d7bd892ec3f2f476b596b7fa.zip
int computer v2
Diffstat (limited to 'src')
-rw-r--r--src/2019/day5/aoc.cpp16
-rw-r--r--src/2019/day5/aoc.h3
2 files changed, 11 insertions, 8 deletions
diff --git a/src/2019/day5/aoc.cpp b/src/2019/day5/aoc.cpp
index d1d7c4b..844e400 100644
--- a/src/2019/day5/aoc.cpp
+++ b/src/2019/day5/aoc.cpp
@@ -95,16 +95,18 @@ static void run(size_t i, std::vector<int>& codes, std::vector<int>& outputs) {
}
}
-static int run(int i, std::vector<int> codes) {
- input = &i;
- input_sequence = 0;
- std::vector<int> outputs;
- run(0, codes, outputs);
- return outputs[outputs.size() - 1];
+static int run(int i, const std::vector<int>& codes) {
+ int is[] = {i};
+ set_computer(is);
+ return run_computer(codes);
}
-int int_computer(int i[], std::vector<int> codes) {
+void set_computer(int i[]) {
input = i;
+ input_sequence = 0;
+}
+
+int run_computer(std::vector<int> codes) {
std::vector<int> outputs;
run(0, codes, outputs);
return outputs[outputs.size() - 1];
diff --git a/src/2019/day5/aoc.h b/src/2019/day5/aoc.h
index 5c0e50e..2445f95 100644
--- a/src/2019/day5/aoc.h
+++ b/src/2019/day5/aoc.h
@@ -5,6 +5,7 @@
namespace aoc2019 {
-int int_computer(int i[], std::vector<int> codes);
+void set_computer(int i[]);
+int run_computer(std::vector<int> codes);
std::pair<int, int> day5(line_view);
}