Skip to content

Commit e423bd8

Browse files
committed
chore: WIP of y2025::day_10
1 parent b5b2cf6 commit e423bd8

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

aoclp_solutions/src/y2025/day_10.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use std::cmp::min;
12
use std::collections::HashMap;
23
use rayon::iter::{IntoParallelRefIterator, ParallelIterator};
34
use std::str::FromStr;
@@ -52,14 +53,16 @@ impl Machine {
5253

5354
fn fewest_presses_for_joltage(&self) -> usize {
5455
let mut cache = HashMap::new();
55-
self.fewest_presses_for_joltage_from(vec![0; self.joltage_reqs.len()], 0, usize::MAX, &mut cache)
56+
let presses = self.fewest_presses_for_joltage_from(vec![0; self.joltage_reqs.len()], 0, usize::MAX, &mut cache);
57+
println!("{presses}");
58+
presses
5659
}
5760

58-
fn fewest_presses_for_joltage_from(&self, cur: Vec<usize>, steps: usize, max_steps: usize, cache: &mut HashMap<Vec<usize>, usize>) -> usize {
61+
fn fewest_presses_for_joltage_from(&self, cur: Vec<usize>, steps: usize, max_steps: usize, _cache: &mut HashMap<Vec<usize>, usize>) -> usize {
5962
if *cur == self.joltage_reqs {
6063
return steps;
61-
} else if let Some(presses) = cache.get(&cur) {
62-
return *presses;
64+
// } else if let Some(presses) = cache.get(&cur) {
65+
// return *presses;
6366
} else if steps == max_steps || cur.iter().zip(self.joltage_reqs.iter()).any(|(cur, req)| *cur > *req) {
6467
return max_steps;
6568
}
@@ -71,9 +74,10 @@ impl Machine {
7174
for w in wiring {
7275
next[*w] += 1;
7376
}
74-
self.fewest_presses_for_joltage_from(next, steps + 1, max, cache)
77+
let next_presses = self.fewest_presses_for_joltage_from(next, steps + 1, max, _cache);
78+
min(max, next_presses)
7579
});
76-
cache.insert(cur, presses);
80+
// cache.insert(cur, presses);
7781
presses
7882
}
7983
}

0 commit comments

Comments
 (0)