Переміщення Точок#3343

Переміщення Точок

10 секунд
32 мегабайти
Складна

Розгляньмо кілька цільових точок на площині. Кожна з них рухається по прямій лінії з постійною швидкістю і не змінює напрямок. Тепер уявімо точку-переслідувача, яка стартує з початку координат і рухається зі швидкістю, що перевищує швидкість будь-якої з цільових точок. Точка-переслідувач рухається з постійною швидкістю, але може змінювати напрямок на свій розсуд. Вона "зловить" цільову точку, а потім переміститься, щоб зловити іншу, і так далі.

Враховуючи параметри точки-переслідувача та цільових точок, визначте, скільки мінімального часу потрібно точці-переслідувачу, щоб зловити всі цільові точки. "Зловити" означає, що переслідувач і цільова точка знаходяться в одній точці на площині в один і той же момент часу. Це може бути миттєво; немає потреби, щоб переслідувач залишався з цільовою точкою протягом будь-якого ненульового проміжку часу.

Вхідні дані

У вхідних даних буде кілька тестових випадків. Кожен тестовий випадок починається з двох цілих чисел

де (1 \le N \le 15) — кількість цільових точок, а (0 < C \le 1000) — швидкість точки-переслідувача. Кожен з наступних рядків містить чотири цілі числа, що описують цільову точку:

де (, ) — це початкове розташування на площині (-1000 \le X, Y \le 1000) цієї цільової точки в момент часу , (0 \le D < 360) — напрямок руху в градусах ( градусів — це позитивна вісь , градусів — це позитивна вісь ), а (0 \le S < C) — швидкість цієї цільової точки. Вважається, що всі цільові точки починають рухатися негайно в момент часу .

Вхідні дані закінчуються рядком з двома .

Вихідні дані

Для кожного тестового випадку виведіть одне дійсне число в окремому рядку, яке представляє мінімальний час, необхідний точці-переслідувачу, щоб зловити всі цільові точки. Виведіть це число з точністю до десяткових знаків, округлене. Не виводьте зайвих пробілів і не розділяйте відповіді порожніми рядками.

Приклади

Приклад 1

Loading
Loading