aocpp/2019/05.cpp

26 lines
576 B
C++
Raw Permalink Normal View History

2022-11-03 08:15:17 -07:00
#include <iostream>
#include <utility>
#include <aocpp/Startup.hpp>
2022-11-04 09:38:01 -07:00
#include <intcode/intcode.hpp>
2022-11-03 12:53:10 -07:00
using namespace intcode;
2022-11-03 08:15:17 -07:00
namespace {
2022-11-03 12:53:10 -07:00
2022-11-03 14:43:47 -07:00
auto Compute(Machine machine, ValueType d) -> ValueType {
ValueType last_output = -1;
2022-11-04 11:36:30 -07:00
Run(machine,
[=]() { return d; },
[&](auto o) { last_output = o; });
2022-11-03 12:53:10 -07:00
return last_output;
2022-11-03 08:15:17 -07:00
}
2022-11-03 12:53:10 -07:00
} // namespace
2023-01-31 09:15:15 -08:00
auto Main(std::istream & in, std::ostream & out) -> void
2023-01-31 08:58:42 -08:00
{
auto machine = Machine{ParseStream(in)};
2023-01-31 09:15:15 -08:00
out << "Part 1: " << Compute(machine, 1) << std::endl;
out << "Part 2: " << Compute(std::move(machine), 5) << std::endl;
2022-11-03 12:53:10 -07:00
}