aoc24: day17 started
This commit is contained in:
59
sol/24/day17.cpp
Normal file
59
sol/24/day17.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
#include <vector>
|
||||
#include <ranges>
|
||||
#include <numeric>
|
||||
#include <memory>
|
||||
|
||||
#include "aoc.hpp"
|
||||
#include "aoc/utils.hpp"
|
||||
#include "fmt/format.h"
|
||||
#include "stb_image_write.h"
|
||||
|
||||
using namespace aoc::types;
|
||||
using namespace std::string_view_literals;
|
||||
|
||||
namespace uec {
|
||||
enum class opcode : u8 {
|
||||
adv,
|
||||
bxl,
|
||||
bst,
|
||||
jnz,
|
||||
bxc,
|
||||
out,
|
||||
bdv,
|
||||
cdv
|
||||
};
|
||||
|
||||
struct regs {
|
||||
u64 a;
|
||||
u64 b;
|
||||
u64 c;
|
||||
};
|
||||
|
||||
class cpu {
|
||||
public:
|
||||
cpu() {}
|
||||
|
||||
auto load(uec::regs const& regs, std::vector<opcode> const& program) -> void {
|
||||
m_regs = regs;
|
||||
m_program = program;
|
||||
}
|
||||
|
||||
auto registers() const -> uec::regs { return m_regs; }
|
||||
auto program() const -> std::vector<opcode> const& { return m_program; }
|
||||
|
||||
private:
|
||||
uec::regs m_regs{};
|
||||
std::vector<opcode> m_program{};
|
||||
};
|
||||
}
|
||||
|
||||
auto aoc24::day17([[maybe_unused]]std::span<char const*> const& args) -> std::expected<void, aoc::error> {
|
||||
auto res = aoc::read_text("./dat/24/ex/17.txt");
|
||||
// auto res = aoc::read_text("./dat/24/re/17.txt");
|
||||
if (!res) return std::unexpected(res.error());
|
||||
auto const txt = *res;
|
||||
|
||||
auto
|
||||
|
||||
return {};
|
||||
}
|
||||
Reference in New Issue
Block a user