C# Passing Cars
static long PassingCars(int[] a)
{
    long passingCars = 0;
    long multiply = 0;

    foreach (var i in a)
    {
        if (i == 0)
        {
            multiply++;
        }
        else if (multiply > 0)
        {
            passingCars += multiply;
            if (passingCars > 1000000000)
            {
                return -1;
            }
        }
    }

    return passingCars;
}

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