From 81d04311a95cdd3ffde95377709c9e7c2e4151ea Mon Sep 17 00:00:00 2001 From: Daniel Bulant Date: Sun, 17 Dec 2023 12:22:29 +0100 Subject: [PATCH] go back to bools --- 2023/16/src/main.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/2023/16/src/main.rs b/2023/16/src/main.rs index 40244ed..d1dd675 100644 --- a/2023/16/src/main.rs +++ b/2023/16/src/main.rs @@ -73,11 +73,10 @@ struct Beam { // ]; impl Beam { - fn to_nums(&self) -> (usize, usize) { + fn to_nums(&self) -> usize { let vecval = (self.vector.x+1)*self.vector.x.abs()+(self.vector.y+2)*self.vector.y.abs(); let val = (self.point.x * 110 + self.point.y + 1) << 2 | vecval as usize; - (val >> 6, 1 << (val & 63)) - // 0b1000000000000000000000000000000000000000000000000000000000000000 + val } } @@ -282,11 +281,11 @@ fn setup() -> (Point, Vec>, Vec>) { fn get_count(max_point: Point, rows: Vec>, columns: Vec>, beam: Beam) -> usize { let mut energized : Vec> = vec![vec![false; max_point.x]; max_point.y]; // let mut beams_set = HashSet::>::default(); - let mut beams_set_vec = vec![0; (max_point.x + 1) * (max_point.y + 1) / 8 + 1]; + let mut beams_set_vec = vec![false; (max_point.x + 1) * (max_point.y + 1) * 4]; let mut beams : Vec = vec![beam]; // beams_set.insert(beams[0]); let b0 = beams[0].to_nums(); - beams_set_vec[b0.0] = b0.1; + beams_set_vec[b0] = true; let mut offset = 0; @@ -340,8 +339,8 @@ fn get_count(max_point: Point, rows: Vec>, columns: Vec