From 229f1057468e6f7508ef36e804bc55af224b9fab Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 12 Dec 2022 01:31:23 -0500 Subject: optimize day 12 --- src/graph.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/graph.rs') diff --git a/src/graph.rs b/src/graph.rs index 74c2910..9312e7c 100644 --- a/src/graph.rs +++ b/src/graph.rs @@ -9,13 +9,17 @@ where fn edges(&self, v: Vertex) -> Self::Edges; fn edge(&self, v: Vertex, e: Edge) -> (Vertex, u64); - fn dijkstra(&self, start: Vertex, end: Vertex) -> (u64, Vec) { + fn dijkstra bool>( + &self, + start: Vertex, + end: F, + ) -> (u64, Vec) { let mut to_visit = priority_queue::PriorityQueue::new(); let mut prev = HashMap::new(); prev.insert(start, start); to_visit.push(start, std::cmp::Reverse(0)); while let Some((v, std::cmp::Reverse(distance))) = to_visit.pop() { - if v == end { + if end(v) { let mut path = vec![v]; let mut cur = v; while let Some(next) = prev.get(&cur) { -- cgit v1.2.3-54-g00ecf