From 628b7b45df8e78f4ba759760987f65b978e188f5 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Mon, 1 Dec 2025 12:48:55 +0100 Subject: aoc 2025, day 1 --- 2025/src/day01.cpp | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 2025/src/day01.cpp (limited to '2025/src') diff --git a/2025/src/day01.cpp b/2025/src/day01.cpp new file mode 100644 index 0000000..aa1ea42 --- /dev/null +++ b/2025/src/day01.cpp @@ -0,0 +1,67 @@ +#include +#include +#include +#include +#include + +using namespace std; + +namespace { + +vector +read_file(const filesystem::path& filename) +{ + ifstream file{ filename }; + vector lines; + + for ( string line; getline(file, line); ) { + lines.emplace_back(line); + } + + return lines; +} + +void +part1(const vector& lines) +{ + auto zeros = 0; + auto pos = 50; + + for ( const auto& line: lines ) { + auto value = stoi(line.substr(1)); + value %= 100; + pos += (line[0] == 'L') ? (100 - value) : value; + if ( pos % 100 == 0 ) { + ++zeros; + } + } + cout << "Part 1: " << zeros << '\n'; +} + +void +part2(const vector& lines) +{ + auto zeros = 0; + auto pos = 50; + + for ( const auto& line: lines ) { + auto value = stoi(line.substr(1)); + while ( value-- > 0 ) { + pos += (line[0] == 'L') ? 99 : 1; + if ( pos % 100 == 0 ) { + ++zeros; + } + } + } + cout << "Part 2: " << zeros << '\n'; +} + +} // namespace + +int +main() +{ + auto data = read_file("data/day01.txt"); + part1(data); + part2(data); +} -- cgit v1.3