Kitesurfing
InterviewTime limit4sMemory limit512 MB
Find the minimum time for Nora to reach the finish by surfing open water or jumping up to d metres over islands, each jump costing t seconds.
- Level
Medium5 of 10
- Topics
- Graph, Shortest path, Geometry
- Solved
- No attempts yet
Problem
Nora the kitesurfer is taking part in a race across the Frisian islands, a very long and thin archipelago in the north of the Netherlands. The race takes place on the water and follows a straight line from start to finish. Any islands on the route must be jumped over: it is not allowed to surf around them.
The length of the race is metres and the archipelago consists of a number of non-intersecting intervals between start and finish line. During the race, Nora can move in two different ways:
- Nora can surf between any two points at a speed of 1 metre per second, provided there are no islands between them.
- Nora can jump between any two points if they are at most metres apart and neither of them is on an island. A jump always takes seconds, regardless of distance covered.
While it is not possible to land on or surf across the islands, it is still allowed to visit the end points of any island.

Figure K.1: Illustration of the two sample cases.
Your task is to find the shortest possible time Nora can complete the race in. You may assume that no island is more than metres long. In other words, it is always possible to finish the race.
Input
The input consists of:
- One line with three integers , and (), where is the length of the race in metres, is the maximal jump distance in metres, and is the time needed for each jump in seconds.
- One line with an integer (), the number of islands.
- lines, the th of which contains two integers and ( and ), giving the boundaries of the th island in metres, relative to the starting point.
The islands do not touch and are given from left to right, that is, for each valid .
Output
Output one number, the shortest possible time in seconds needed to complete the race. It can be shown that this number is always an integer.