From 3f6aec0d6794d30f06c9b01bbc4db9fe67e48a16 Mon Sep 17 00:00:00 2001 From: Johannes Date: Sat, 21 Dec 2019 23:14:30 +0100 Subject: [PATCH] day 15 task 2 --- src/tasks/day15.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/tasks/day15.rs b/src/tasks/day15.rs index 329d5d5..2625c67 100644 --- a/src/tasks/day15.rs +++ b/src/tasks/day15.rs @@ -7,9 +7,9 @@ use Direction::*; pub fn run() { let ram = load_ram("input/day15.txt"); task1(ram.clone()); + task2(ram.clone()); } -#[allow(dead_code)] fn task1(ram: RAM) { let (map, goal) = explore_map(ram); let shortest_path = map.get_shortest_path_to(Pos(0, 0), goal); @@ -29,6 +29,21 @@ fn task1(ram: RAM) { ); } +fn task2(ram: RAM) { + let (map, oxygen) = explore_map(ram); + let max_distance = map + .positions + .iter() + .filter(|(_, c)| **c == '.') + .map(|(pos, _)| map.get_shortest_path_to(oxygen, *pos).len()) + .max() + .unwrap(); + println!( + "Task 2: time needed to reach most distant room is {} minutes", + max_distance + ); +} + fn explore_map(ram: RAM) -> (Map, Pos) { let mut map = Map { positions: HashMap::new(),