diff options
Diffstat (limited to '2024')
-rw-r--r-- | 2024/1/p2.rs | 2 | ||||
-rw-r--r-- | 2024/2/p1.rs | 14 | ||||
-rw-r--r-- | 2024/2/p2.rs | 16 |
3 files changed, 20 insertions, 12 deletions
diff --git a/2024/1/p2.rs b/2024/1/p2.rs index 41eeea4..ebaa4db 100644 --- a/2024/1/p2.rs +++ b/2024/1/p2.rs @@ -13,7 +13,7 @@ fn main() { let r: u32 = fields.next().expect(e).parse().expect(e); match right.get(&r) { None => right.insert(r, 1), - Some(v) => right.insert(r, v+1), + Some(v) => right.insert(r, v + 1), }; } diff --git a/2024/2/p1.rs b/2024/2/p1.rs index 4e4df46..7c0abe3 100644 --- a/2024/2/p1.rs +++ b/2024/2/p1.rs @@ -10,9 +10,11 @@ use Direction::*; fn is_safe(levels: &[u32]) -> bool { let mut direction = Unknown; - for i in 0..levels.len()-1 { - let [x, y] = levels[i..=i+1] else { panic!("unreachable") }; - let (diff, d) = if x > y { (x-y, Down) } else { (y-x, Up) }; + for i in 0..levels.len() - 1 { + let [x, y] = levels[i..=i + 1] else { + unreachable!() + }; + let (diff, d) = if x > y { (x - y, Down) } else { (y - x, Up) }; if direction == Unknown { direction = d; } @@ -28,8 +30,10 @@ fn main() { let mut total = 0; for report in input.lines() { - let levels: Vec<u32> = - report.split_whitespace().map(|l| l.parse().unwrap()).collect(); + let levels: Vec<u32> = report + .split_whitespace() + .map(|l| l.parse().unwrap()) + .collect(); if is_safe(&levels) { total += 1; } diff --git a/2024/2/p2.rs b/2024/2/p2.rs index d21f102..78224c4 100644 --- a/2024/2/p2.rs +++ b/2024/2/p2.rs @@ -10,10 +10,12 @@ use Direction::*; fn is_safe(levels: &[u32]) -> bool { let mut direction = Unknown; - for i in 0..levels.len()-1 { - let [x, y] = levels[i..=i+1] else { panic!("unreachable") }; - let (diff, d) = if x > y { (x-y, Down) } else { (y-x, Up) }; - if direction == Unknown { + for i in 0..levels.len() - 1 { + let [x, y] = levels[i..=i + 1] else { + unreachable!() + }; + let (diff, d) = if x > y { (x - y, Down) } else { (y - x, Up) }; + if let Unknown = direction { direction = d; } if diff == 0 || diff > 3 || direction != d { @@ -39,8 +41,10 @@ fn main() { let mut total = 0; for report in input.lines() { - let levels: Vec<u32> = - report.split_whitespace().map(|l| l.parse().unwrap()).collect(); + let levels: Vec<u32> = report + .split_whitespace() + .map(|l| l.parse().unwrap()) + .collect(); if is_safe(&levels) || is_safe_with_dampener(&levels) { total += 1; } |