26 lines
682 B
Rust
26 lines
682 B
Rust
|
|
pub fn solve(input: &String) {
|
|
let all_numbers = input.split_whitespace()
|
|
.filter(|str| !str.is_empty())
|
|
.map(|str| str.parse::<i32>().unwrap())
|
|
.collect::<Vec<_>>();
|
|
|
|
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);
|
|
}
|