The Shallow Alto city council has organized a special committee to review the
traffic situation in the city. Despite the fact that there is nothing
whatsoever to do in the city, citizens still write complaints about the amount
of time it takes them to get from one unexciting location to the next.
The committee has been asked to figure out how long it takes someone to travel
down the streets of Shallow Alto given the current traffic light programming.
To do this, they want you to write an algorithm which, given the speed a car
travels down a road and the timing of the traffic lights, returns the amount
of time it takes the car to travel down the street.
The traffic lights will be in an int[], with each element representing the
amount of time in seconds between signal changes. Initially, all traffic
lights have just turned green, and are at the beginning of their cycle. The order of the
traffic lights in the int[] will be the order in which a car encounters them.
The speed you will be given is in meters per second. Assume that the car
starts 150 meters before the first traffic light, that there are 150 meters
between each traffic light, and that the car stops 150 meters after the last
traffic light. Disregard all acceleration and deceleration; a car is either at
its given speed or entirely stopped, and it takes no time to go from one state
to the other.
If a car reaches a traffic light just as it turns red, it immediately stops and
waits for it to turn green again (at which point it starts moving immediately).
If the light just turned green, there is no
wait and the car drives on through.
Return the time, in seconds, that it takes the car to travel the entire
distance. Round down any fractional parts, (for example 55.5 becomes 55 and 44.9 becomes 44), but
do not do this until returning (see example #2 below).
|