Bash Passing Cars
passing_cars() {
    local -n _a="$1"
    local _passing=0 _multiply=0 _v
    for _v in "${_a[@]}"; do
        if (( _v == 0 )); then
            ((_multiply++))
        elif (( _multiply > 0 )); then
            _passing=$(( _passing + _multiply ))
            if (( _passing > 1000000000 )); then
                echo -1
                return
            fi
        fi
    done
    echo "$_passing"
}

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