From e8f91f0bfb65fc6d2402e8f47270d2ae884ca724 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sun, 7 Dec 2025 08:49:29 +0100 Subject: aoc 2025, day 7, part 1 --- 2025/src/day07.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 2025/src/day07.cpp (limited to '2025') diff --git a/2025/src/day07.cpp b/2025/src/day07.cpp new file mode 100644 index 0000000..ca73d87 --- /dev/null +++ b/2025/src/day07.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include +#include +#include + +using namespace std; + +namespace { + +vector +read_file(const filesystem::path& filename) +{ + ifstream file{ filename }; + vector grid; + + for ( string line; getline(file, line); ) { + grid.emplace_back(line); + } + + return grid; +} + +void +part1(const vector& grid) +{ + set curr; + curr.insert(grid[0].find('S')); + + int count = 0; + for ( size_t i = 1; i < grid.size(); ++i ) { + const auto& row = grid[i]; + + auto next = curr; + + for ( const auto pos: curr ) { + if ( row[pos] == '^' ) { + next.erase(pos); + next.insert(pos - 1); + next.insert(pos + 1); + ++count; + } + } + + curr = next; + } + cout << "Part 1: " << count << '\n'; +} + +} // namespace + +int +main() +{ + auto grid = read_file("data/day07.txt"); + part1(grid); +} -- cgit v1.3