Rust Tape Equilibrium
fn tape_equilibrium(a: &[i64]) -> i64 {
let mut first_part = 0i64;
let mut second_part: i64 = a.iter().sum();
let mut min = i64::MAX;
for i in 0..a.len() - 1 {
first_part += i as i64;
second_part -= i as i64;
let difference = (first_part - second_part).abs();
min = min.min(difference);
}
min
}
This keeps left and right running sums and updates the smallest difference at each split point.