Кирилл выиграл сертификат на прыжок с парашютом и решил не медлить. Он приехал в прямоугольную декартовую систему координат, в которой земля и воздух разделены прямой y = 0 м, воздух находится сверху (в полуплоскости y ≥ 0 м), земля — снизу. Гравитация направлена вниз (в направлении уменьшения координаты y).
Кирилл поднялся в точку (x, y) и начал падать. Кирилл падает с ускорением свободного падения ровно 10 м/с2 (да, в этом странном мире парашют не замедляет падение, а только смягчает приземление). Изначально вертикальная скорость Кирилла равна 0 м/с. А вот горизонтальной скоростью он может свободно управлять: в любой момент времени Кирилл может поменять свою горизонтальную скорость на любую от −1 м/с до 1 м/с.
Кирилл хочет пробыть в воздухе как можно дольше. К счастью, он заметил в воздухе n облаков. Кирилл точно определил, что i-е облако находится в точке (xi, yi) и имеет плотность ci. Если Кирилл попадёт в точку, где находится i-е облако, то полностью остановится и следующие ci секунд провисит неподвижно в этой точке. После чего он начнёт снова падать с начальной вертикальной скоростью 0 м/с и сможет менять горизонтальную скорость на любую от −1 м/с до 1 м/с.
Определите наибольшее возможное время, которое Кирилл может падать. Его падение заканчивается в тот момент, когда он касается прямой y = 0 м.
Исходные данные
В первой строке задано единственное целое число n — количество облаков (0 ≤ n ≤ 50000).
Во второй строке через пробел задано два целых числа x и y — начальные координаты Кирилла в метрах (−10000 ≤ x ≤ 10000; 1 ≤ y ≤ 10000).
Далее идут n строк, в i-й из которых через пробел заданы три целых числа xi, yi и ci — координаты очередного облака в метрах и его плотность (−10000 ≤ xi ≤ 10000; 0 < yi < y; 1 ≤ ci ≤ 10000). Гарантируется, что координаты всех облаков различны.
Результат
Выведите единственное число — наибольшее возможное время падения в секундах. Ваш ответ считается правильным, если абсолютная или относительная его погрешность не превышает 10−4.
Примеры
исходные данные | результат |
---|
5
0 80
-1 30 2
-1 60 1
0 40 10
1 20 1
1 50 1 | 20.863703305 |
0
100 100 | 4.472135955 |
Автор задачи: Валентин Зуев
Источник задачи: Уральская командная олимпиада по программированию 2020