diff options
Diffstat (limited to 'src/2021/5/mod.rs')
-rw-r--r-- | src/2021/5/mod.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/2021/5/mod.rs b/src/2021/5/mod.rs index 6b413b0..4b472b2 100644 --- a/src/2021/5/mod.rs +++ b/src/2021/5/mod.rs @@ -96,10 +96,16 @@ pub fn part1(coords: impl Iterator<Item = Vec<usize>>) -> Result<i64> { pub fn part2(coords: impl Iterator<Item = Vec<usize>>) -> Result<i64> { let mut map = Map::default(); for nums in coords { - let _ = map.mark_horizontal(nums[0], nums[1], nums[2], nums[3]) - || map.mark_vertical(nums[0], nums[1], nums[2], nums[3]) - || map.mark_diagonal(nums[0], nums[1], nums[2], nums[3]) - || unreachable!(); + if map.mark_horizontal(nums[0], nums[1], nums[2], nums[3]) { + continue; + } + if map.mark_vertical(nums[0], nums[1], nums[2], nums[3]) { + continue; + } + if map.mark_diagonal(nums[0], nums[1], nums[2], nums[3]) { + continue; + } + unreachable!(); } Ok(map.count_overlapping().try_into()?) } |