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.