Compare commits
2 commits
315f56f4c0
...
0f2b0fc80e
Author | SHA1 | Date | |
---|---|---|---|
Yash Karandikar | 0f2b0fc80e | ||
Yash Karandikar | 8717e1d31a |
39
four.rs
Normal file
39
four.rs
Normal file
|
@ -0,0 +1,39 @@
|
|||
fn main() {
|
||||
let buf = std::fs::read_to_string("four.txt").unwrap();
|
||||
let mut count_contains = 0u32;
|
||||
let mut count_overlaps = 0u32;
|
||||
for line in buf.lines() {
|
||||
let (first, last) = line.split_once(',').unwrap();
|
||||
let (first_lower, first_upper) = first
|
||||
.split_once('-')
|
||||
.map(|(a, b)| (a.parse::<u32>().unwrap(), b.parse::<u32>().unwrap()))
|
||||
.unwrap();
|
||||
let (last_lower, last_upper) = last
|
||||
.split_once('-')
|
||||
.map(|(a, b)| (a.parse::<u32>().unwrap(), b.parse::<u32>().unwrap()))
|
||||
.unwrap();
|
||||
|
||||
if contains(first_lower, first_upper, last_lower, last_upper)
|
||||
|| contains(last_lower, last_upper, first_lower, first_upper)
|
||||
{
|
||||
count_contains += 1;
|
||||
}
|
||||
|
||||
if overlaps(first_lower, first_upper, last_lower, last_upper)
|
||||
|| overlaps(last_lower, last_upper, first_lower, first_upper)
|
||||
{
|
||||
count_overlaps += 1;
|
||||
}
|
||||
}
|
||||
|
||||
println!("{}", count_contains);
|
||||
println!("{}", count_overlaps);
|
||||
}
|
||||
|
||||
fn contains(a: u32, b: u32, c: u32, d: u32) -> bool {
|
||||
return (a..=b).contains(&c) && (a..=b).contains(&d);
|
||||
}
|
||||
|
||||
fn overlaps(a: u32, b: u32, c: u32, d: u32) -> bool {
|
||||
return (a..=b).contains(&c) || (a..=b).contains(&d);
|
||||
}
|
Loading…
Reference in a new issue