diff --git a/rs/src/y2022/d04.rs b/rs/src/y2022/d04.rs index 29b297a..1aa7ad2 100644 --- a/rs/src/y2022/d04.rs +++ b/rs/src/y2022/d04.rs @@ -4,6 +4,10 @@ fn contains(a: &RangeInclusive, b: &RangeInclusive) -> bool { a.start() <= b.start() && b.end() <= a.end() } +fn overlap(a: &RangeInclusive, b: &RangeInclusive) -> bool { + a.contains(b.start()) || a.contains(b.end()) || b.contains(a.start()) || b.contains(a.end()) +} + pub fn solve(input: String) { let pairs = input .lines() @@ -21,4 +25,7 @@ pub fn solve(input: String) { .filter(|(a, b)| contains(a, b) || contains(b, a)) .count(); println!("Part 1: {score}"); + + let score = pairs.iter().filter(|(a, b)| overlap(a, b)).count(); + println!("Part 2: {score}"); }