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.