static DAY: u8 = 1; fn main() { let input = advent::read_lines(DAY); println!("{DAY}a: {}", list_distance(&input)); println!("{DAY}b: {}", 0); } fn list_distance(numbers: &[String]) -> u32 { let mut list1 = Vec::new(); let mut list2 = Vec::new(); for pair in numbers { let (number1, number2) = pair.split_once(" ").unwrap(); list1.push(number1.parse::().unwrap()); list2.push(number2.parse::().unwrap()); } list1.sort(); list2.sort(); list1.iter() .enumerate() .map(|(i, number1)| number1.abs_diff(list2[i])) .sum() } #[cfg(test)] mod tests { use super::*; #[test] fn test() { let input = [ "3 4", "4 3", "2 5", "1 3", "3 9", "3 3", ].iter().map(|&x| String::from(x)).collect::>(); assert_eq!(list_distance(&input), 11); } }