The seashore is represented by a polyline without self-intersections, described by a sequence of vertices (x1, y1), ... (xN, yN). It also has a property that xi < xi + 1. The sea is above the line, and the beach -- below.
Your program must connect two vertices with a straight line not longer than L chosen so as to maximize the beach area enclosed between that line and the shore. The line must not intersect with the sea and may only touch, not intersect, the shore polyline.
3 ≤ N ≤ 5000, 0 ≤ xi, yi, L ≤ 1000000
Input contains integer numbers N L, followed by N pairs of integers x1 y1 … xN yN.
Output must contain a single floating point value -- the maximum area that can be cut (it may be zero). The area must be output exactly, i.e. without any rounding at all.
0 0 1 3 2 0 3 3 4 0
- Beach cut