Rust Passing Cars
fn passing_cars(a: &[i64]) -> i64 {
    let mut passing_cars = 0i64;
    let mut multiply = 0i64;
    for &i in a {
        if i == 0 {
            multiply += 1;
        } else if multiply > 0 {
            passing_cars += multiply;
            if passing_cars > 1_000_000_000 {
                return -1;
            }
        }
    }

    passing_cars
}

This counts eastbound cars as it scans, then adds them whenever a westbound car appears.