pub fn solve(input: &String) { let all_numbers = input.split_whitespace() .filter(|str| !str.is_empty()) .map(|str| str.parse::().unwrap()) .collect::>(); let mut left = Vec::new(); let mut right = Vec::new(); for idx in (0..all_numbers.len()).step_by(2) { left.push(all_numbers[idx]); right.push(all_numbers[idx + 1]); } left.sort(); right.sort(); let mut sum_of_distances = 0; for idx in 0..left.len() { sum_of_distances += (left[idx] - right[idx]).abs(); } println!("sum of distances: {}", sum_of_distances); }