From f0638b6cef379829127dc352a227b3d43ba383cc Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Mon, 11 Nov 2024 12:40:07 +0100 Subject: day 10, part 1, aoc 2022 --- 2022/src/day10.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 2022/src/day10.cpp (limited to '2022/src/day10.cpp') diff --git a/2022/src/day10.cpp b/2022/src/day10.cpp new file mode 100644 index 0000000..76c953c --- /dev/null +++ b/2022/src/day10.cpp @@ -0,0 +1,44 @@ +#include +#include +#include +#include +using namespace std; + +vector +read_file(string_view filename) +{ + fstream input{ filename }; + vector cycles{}; + int reg_x = 1; + + static const string add_instr = "addx "; + + for ( string line; getline(input, line); ) { + cycles.emplace_back(reg_x); + + if ( line.starts_with(add_instr) ) { + cycles.emplace_back(reg_x); + reg_x += stoi(line.substr(add_instr.size())); + } + } + cycles.emplace_back(reg_x); + + return cycles; +} + +void +part1(const vector& cycles) +{ + int sum = 0; + for ( size_t cycle = 19; cycle < cycles.size(); cycle += 40 ) { + sum += static_cast(cycle + 1) * cycles[cycle]; + } + cout << sum << endl; +} + +int +main() +{ + const auto cycles = read_file("data/day10.txt"); + part1(cycles); +} -- cgit v1.3