Задача C. Канатная дорога

Автор:И. Бураго   Ограничение времени:2 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  

Условие

Не так давно администрация столицы Флатландии приняла решение о строительстве канатной дороги. Этот транспорт подходит городу как нельзя лучше: столица построена на N холмах, каждый из которых при взгляде сбоку имеет вид параболы с направленными вниз ветвями. То есть i-й холм можно однозначно определить такими тремя числами Ai, Bi, Ci, что точка плоскости с координатами (x, y) находится внутри холма тогда и только тогда, когда Ai x2 + Bi x + Ci ≥ y. Холмы могут пересекаться, но вершина холма никогда не находится внутри другого холма.

Канатная дорога представляет собой набор из K одинаковых столбов высоты H, через вершины которых последовательно (в порядке увеличения абсциссы) протянут канат. В целях повышения надежности пассажирских перевозок столбы должны устанавливаться только на вершинах холмов. На первом и N-м холмах обязательно должны быть установлены столбы. Отрезки каната не должны пересекаться или даже касаться холмов.

Покупка уникальных столбов с античными барельефами принесла казне столицы существенные убытки, поэтому администрация хочет установить столбы так, чтобы сэкономить хотя бы на канате. Требуется написать программу, которая вычислит минимальную необходимую длину каната.

Рекомендуется рассмотреть частичные решения

Формат входного файла

В первой строке входного файла находятся числа N K H, где N — количество холмов, K — число столбов и H — высота каждого из них (вещественное число). В каждой из следующих N строк содержится тройка вещественных чисел Ai Bi Ci, определяющая вид i-го холма. Холмы заданы в порядке увеличения абсциссы вершин.

Формат выходного файла

В единственную строку выходного файла выведите минимальную длину каната, необходимого для строительства, с точностью до трёх знаков после десятичной точки или  − 1, если построить канатную дорогу невозможно.

Ограничения

2 ≤ N ≤ 300, 2 ≤ K ≤ N, 1 ≤ H ≤ 106.

 − 106 ≤ Ai < 0,  − 106 ≤ Bi, Ci ≤ 106.

Все вещественные числа во входном файле заданы не более чем с 5 знаками после десятичной точки.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
3 3 1.5
-1 -5 0
-2 0 10
-1 4 0
10.831
2
3 2 1.5
-1 -5 0
-2 0 10
-1 4 0
-1

0.264s 0.012s 15