In the year 2020, a race of atomically energized cars will be held. Unlike today's car races, fueling is not a concern of racing teams. Cars can run throughout the course without any refueling. Instead, the critical factor is tire (tyre). Teams should carefully plan where to change tires of their cars.
The race is a road race having n checkpoints in the course. Their distances from the start are a1, a2, ..., and an (in kilometers). The n-th checkpoint is the goal. At the i-th checkpoint (i < n), tires of a car can be changed. Of course, a team can choose whether to change or not to change tires at each checkpoint. It takes b seconds to change tires (including overhead for braking and accelerating). There is no time loss at a checkpoint if a team chooses not to change tires.
A car cannot run fast for a while after a tire change, because the temperature of tires is lower than the designed optimum. After running long without any tire changes, on the other hand, a car cannot run fast because worn tires cannot grip the road surface well. The time to run an interval of one kilometer from x to x + 1 is given by the following expression (in seconds). Here x is a nonnegative integer denoting the distance (in kilometers) from the latest checkpoint where tires are changed (or the start). r, v, e and f are given constants.
1/(v - e * (x - r)) (if x >= r)
1/(v - f * (r - x)) (if x < r)
Your mission is to write a program to determine the best strategy of tire changes which minimizes the total time to the goal.