summaryrefslogtreecommitdiffstats
path: root/src/2021/5/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/2021/5/mod.rs')
-rw-r--r--src/2021/5/mod.rs14
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()?)
}