printРабочее место участника

printЗадачи

1327. Покрытие

Ограничения: время – 20ms/500ms, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Человек с сотовым телефоном передвигается вдоль прямого отрезка пути, конечные точки которого имеют целочисленные координаты. Для того, чтобы телефон работал, необходимо находиться в зоне покрытия одной из трансляционных вышек. В процессе передвижения человека вдоль пути, он может выходить из радиуса покрытия сотовой вышки, или наоборот, входить в зону покрытия. Телефон остается "в сети", если он находится в зоне покрытия хотя бы одной вышки, и "не в сети", если он не находится в зоне покрытия ни одной вышки. Зная координаты вышек сотовой связи и радиусы их зон покрытия, вам необходимо найти процентное отношение суммарной длины участка пути, покрытого сотовой связью, к длине всего пути.
В первой строке ввода содержится одно целое число `N` (`1\ ≤\ N\ ≤\ 100`) – количество вышек сотовой связи. В следующей строке содержатся четыре целых числа, разделенных пробелами `A_x,\ A_y,\ B_x,\ B_y` – координаты начальной и конечной точки отрезка пути. В каждой из следующих `N` строк содержатся по три целых числа через пробел `C_{x\ i},\ C_{y\ i},\ R_i` – координаты вышки сотовой связи и радиус ее зоны покрытия. Все координаты по абсолютному значению не превосходят 100. Радиусы действия вышек находятся в диапазоне от 1 до 100 включительно.
Вывести одно число `R` – покрытие отрезка пути сотовой связью, выраженное в процентах, с точностью `10^{-2}`.

Пример ввода 1

3
0 0 100 0
0 0 10
5 0 10
15 0 10

Пример вывода 1

25.00

Пример ввода 2

1
0 0 100 0
40 10 50

Пример вывода 2

88.99
loading