[rs] Solve 2022_04 part 2
This commit is contained in:
parent
ce2613373a
commit
7b89c13503
1 changed files with 7 additions and 0 deletions
|
|
@ -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}");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue