aocpp/day09.cpp
Eric Mertens 898ae0521b renames
2022-11-03 14:43:47 -07:00

32 lines
662 B
C++

#include <iostream>
#include <utility>
#include <intcode.hpp>
using namespace intcode;
namespace {
auto Compute(Machine machine, ValueType d) -> ValueType {
ValueType output = -1;
while (std::visit(overloaded{
[](Halt) { return false; },
[d](Input arg) {
arg.pos = d;
return true;
},
[&output](Output arg) {
output = arg.val;
return false;
}},
machine.Step()));
return output;
}
} // namespace
auto main() -> int {
auto machine = Machine{ParseStream(std::cin)};
std::cout << "Part 1: " << Compute(machine, 1) << std::endl;
std::cout << "Part 2: " << Compute(std::move(machine), 2) << std::endl;
}