[rs] Solve 2022_04 part 2

This commit is contained in:
Joscha 2022-12-04 12:36:42 +01:00
parent ce2613373a
commit 7b89c13503

View file

@ -4,6 +4,10 @@ fn contains(a: &RangeInclusive<u32>, b: &RangeInclusive<u32>) -> bool {
a.start() <= b.start() && b.end() <= a.end() a.start() <= b.start() && b.end() <= a.end()
} }
fn overlap(a: &RangeInclusive<u32>, b: &RangeInclusive<u32>) -> bool {
a.contains(b.start()) || a.contains(b.end()) || b.contains(a.start()) || b.contains(a.end())
}
pub fn solve(input: String) { pub fn solve(input: String) {
let pairs = input let pairs = input
.lines() .lines()
@ -21,4 +25,7 @@ pub fn solve(input: String) {
.filter(|(a, b)| contains(a, b) || contains(b, a)) .filter(|(a, b)| contains(a, b) || contains(b, a))
.count(); .count();
println!("Part 1: {score}"); println!("Part 1: {score}");
let score = pairs.iter().filter(|(a, b)| overlap(a, b)).count();
println!("Part 2: {score}");
} }