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/data/.gitkeep | 0 2025/src/day01.cpp | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ makefile | 9 ++++++-- 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 2025/data/.gitkeep create mode 100644 2025/src/day01.cpp diff --git a/2025/data/.gitkeep b/2025/data/.gitkeep new file mode 100644 index 0000000..e69de29 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); +} diff --git a/makefile b/makefile index 22a1c4b..634c220 100644 --- a/makefile +++ b/makefile @@ -6,7 +6,8 @@ all: $(patsubst 2015/src/%.cpp,2015/bin/%,$(wildcard 2015/src/*.cpp)) \ $(patsubst 2020/src/%.cpp,2020/bin/%,$(wildcard 2020/src/*.cpp)) \ $(patsubst 2022/src/%.cpp,2022/bin/%,$(wildcard 2022/src/*.cpp)) \ $(patsubst 2023/src/%.cpp,2023/bin/%,$(wildcard 2023/src/*.cpp)) \ - $(patsubst 2024/src/%.cpp,2024/bin/%,$(wildcard 2024/src/*.cpp)) + $(patsubst 2024/src/%.cpp,2024/bin/%,$(wildcard 2024/src/*.cpp)) \ + $(patsubst 2025/src/%.cpp,2025/bin/%,$(wildcard 2025/src/*.cpp)) %/bin: mkdir -p $@ @@ -57,7 +58,11 @@ all: $(patsubst 2015/src/%.cpp,2015/bin/%,$(wildcard 2015/src/*.cpp)) \ 2024/bin/day13-z3: 2024/src/day13-z3.cpp | 2024/bin c++ $(CPPFLAGS) $^ -lz3 -o $@ +# 2025 +2025/bin/%: 2025/src/%.cpp | 2025/bin + c++ $(CPPFLAGS) $^ -o $@ + clean: - rm -rf 2015/bin 2016/bin 2017/bin 2020/bin 2022/bin 2023/bin 2024/bin + rm -rf 2015/bin 2016/bin 2017/bin 2020/bin 2022/bin 2023/bin 2024/bin 2025/bin .PHONY: all clean -- cgit v1.3