From 1a4db2303352c067d22fa9aac84921759e003192 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Fri, 20 Dec 2024 17:13:14 +0100 Subject: aoc 2024, day 20, part 2 --- 2024/src/day20.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/2024/src/day20.cpp b/2024/src/day20.cpp index 42a2fba..3e79f33 100644 --- a/2024/src/day20.cpp +++ b/2024/src/day20.cpp @@ -100,9 +100,34 @@ part1(const tuple>& data) cout << count << endl; } +void +part2(const tuple>& data) +{ + auto path = bfs(data); + + long count = 0; + for ( const auto& [pos, dist]: path ) { + auto [x, y] = pos; + + for ( size_t r = 2; r != 21; ++r ) { + for ( size_t dx = 0; dx != r + 1; ++dx ) { + size_t dy = r - dx; + + for ( const auto& new_pos: set{ { x + dx, y + dy }, { x - dx, y + dy }, { x + dx, y - dy }, { x - dx, y - dy } } ) { + if ( path.contains(new_pos) && dist < path.at(new_pos) && path.at(new_pos) - dist >= 100 + long(r) ) { + ++count; + } + } + } + } + } + cout << count << endl; +} + int main() { auto data = read_file("data/day20.txt"); part1(data); + part2(data); } -- cgit v1.3