10961: Codility - Passing Cars
[Creator : ]
Description
Count the number of passing cars on the road.
A non-empty array $A$ consisting of $N$ integers is given. The consecutive elements of array $A$ represent consecutive cars on a road.
Array A contains only 0s and/or 1s:
For example, consider array $A$ such that:
A non-empty array $A$ consisting of $N$ integers is given. The consecutive elements of array $A$ represent consecutive cars on a road.
Array A contains only 0s and/or 1s:
The goal is to count passing cars. We say that a pair of cars $(P, Q)$, where $0 ≤ P < Q < N$, is passing when $P$ is traveling to the east and $Q$ is traveling to the west.
- $0$ represents a car traveling east,
- $1$ represents a car traveling west.
For example, consider array $A$ such that:
A[0] = 0 A[1] = 1 A[2] = 0 A[3] = 1 A[4] = 1We have five pairs of passing cars: $(0, 1), (0, 3), (0, 4), (2, 3), (2, 4)$.
Input
Write an efficient algorithm for the following assumptions:
$N$ is an integer within the range $[1..100,000]$;
each element of array $A$ is an integer that can have one of the following values: $0, 1$.
$N$ is an integer within the range $[1..100,000]$;
each element of array $A$ is an integer that can have one of the following values: $0, 1$.
Output
Returns the number of pairs of passing cars.
The function should return −1 if the number of pairs of passing cars exceeds 1,000,000,000.
The function should return −1 if the number of pairs of passing cars exceeds 1,000,000,000.
Sample 1 Input
5
0 1 0 1 1
Sample 1 Output
5