Skip to content

Commit 0c05b24

Browse files
committed
Bring back lut
1 parent 501d188 commit 0c05b24

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

src/day11.rs

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use fxhash::FxHashMap as HashMap;
22

33
use aoc_runner_derive::aoc;
44

5-
const LUT_SIZE: u64 = 10000;
5+
const LUT_SIZE: u64 = 100;
66

77
const LUT: [u64; LUT_SIZE as usize] = const {
88
let mut lut = [0; LUT_SIZE as usize];
@@ -49,18 +49,18 @@ fn amount_of_stones(num: u64, blinks_left: u64, cach: &mut HashMap<(u64, u64), u
4949
if let Some(r) = cach.get(&(num, blinks_left)) {
5050
return *r;
5151
}
52-
const { assert!(LUT_SIZE == 10000) };
52+
const { assert!(LUT_SIZE == 100) };
5353
let r = match num {
5454
0 => amount_of_stones(1, blinks_left - 1, cach),
5555
1..=9 => amount_of_stones(num * 2024, blinks_left - 1, cach),
5656
10..=99 => {
57-
// let r = LUT[num as usize];
58-
// println!(
59-
// "{} -> {} and {}",
60-
// num,
61-
// r & (2u64.pow(32) - 1),
62-
// (r >> 32) & (2u64.pow(32) - 1)
63-
// );
57+
let r = LUT[num as usize];
58+
println!(
59+
"{} -> {} and {}",
60+
num,
61+
r & (2u64.pow(32) - 1),
62+
(r >> 32) & (2u64.pow(32) - 1)
63+
);
6464
// amount_of_stones(r & (2u64.pow(32) - 1), blinks_left - 1, cach)
6565
// + amount_of_stones((r >> 32) & (2u64.pow(32) - 1), blinks_left - 1, cach)
6666
amount_of_stones(num / 10, blinks_left - 1, cach)
@@ -70,9 +70,6 @@ fn amount_of_stones(num: u64, blinks_left: u64, cach: &mut HashMap<(u64, u64), u
7070
1000..=9999 => {
7171
amount_of_stones(num / 100, blinks_left - 1, cach)
7272
+ amount_of_stones(num % 100, blinks_left - 1, cach)
73-
// let r = LUT[num as usize];
74-
// amount_of_stones(r & (2u64.pow(32) - 1), blinks_left - 1, cach)
75-
// + amount_of_stones((r >> 32) & (2u64.pow(32) - 1), blinks_left - 1, cach)
7673
}
7774
10000..=99999 => amount_of_stones(num * 2024, blinks_left - 1, cach),
7875
100000..=999999 => {

0 commit comments

Comments
 (0)