diff --git a/04/main.rs b/04/main.rs index 0614242..995bc04 100644 --- a/04/main.rs +++ b/04/main.rs @@ -32,16 +32,14 @@ fn part_one() { let mut overlaps = 0; for line in lines { if let Ok(ranges) = line { - let v: Vec> = ranges + let v: Vec> = ranges .split(",") - .map(|r| r.split("-").map(|i| i.parse::().unwrap()).collect()) + .map(|r| r.split("-").map(|i| i.parse::().unwrap()).collect()) .collect(); // 00 ... 01 // 10 ... 11 - if (v.get(0).unwrap().get(0) <= v.get(1).unwrap().get(0) - && v.get(0).unwrap().get(1) >= v.get(1).unwrap().get(1)) - || (v.get(1).unwrap().get(0) <= v.get(0).unwrap().get(0) - && v.get(1).unwrap().get(1) >= v.get(0).unwrap().get(1)) + if (v[0][0] <= v[1][0] && v[0][1] >= v[1][1]) + || (v[1][0] <= v[0][0] && v[1][1] >= v[0][1]) { overlaps += 1; } @@ -56,21 +54,17 @@ fn part_two() { let mut overlaps = 0; for line in lines { if let Ok(ranges) = line { - let v: Vec> = ranges + let v: Vec> = ranges .split(",") - .map(|r| r.split("-").map(|i| i.parse::().unwrap()).collect()) + .map(|r| r.split("-").map(|i| i.parse::().unwrap()).collect()) .collect(); // 00 ... 01 // 10 ... 11 // uuuuuugh - if (v.get(0).unwrap().get(0) <= v.get(1).unwrap().get(0) - && v.get(0).unwrap().get(1) >= v.get(1).unwrap().get(1)) - || (v.get(1).unwrap().get(0) <= v.get(0).unwrap().get(0) - && v.get(1).unwrap().get(1) >= v.get(0).unwrap().get(1)) - || (v.get(0).unwrap().get(0) <= v.get(1).unwrap().get(1) - && v.get(0).unwrap().get(0) >= v.get(1).unwrap().get(0)) - || (v.get(0).unwrap().get(1) >= v.get(1).unwrap().get(0) - && v.get(0).unwrap().get(1) <= v.get(1).unwrap().get(1)) + if (v[0][0] <= v[1][0] && v[0][1] >= v[1][1]) + || (v[1][0] <= v[0][0] && v[1][1] >= v[0][1]) + || (v[0][0] <= v[1][1] && v[0][0] >= v[1][0]) + || (v[0][1] >= v[1][0] && v[0][1] <= v[1][1]) { overlaps += 1; }