Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

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

printЗадачи

2332. Гиперкик

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

В недалеком будущем искусственный интеллект "Ватсон" изобрел новый вид транспорта – гиперкик. Перемещение по гиперкику происходит почти мгновенно, независимо от длины и формы линии. Также очень быстро происходит пересадка с одной линии на другую. Но строительство станций и линий гиперкика стоит дорого, поэтому станции будут построены только в городах. Стоимость строительства линии прямо пропорциональна её длине. Ведение строительства затрудняет горный хребет, через который невозможно построить линию, поэтому линии гиперкика должны идти в обход хребта. Для упрощения будем считать хребет отрезком прямой линии. Необходимо связать все города страны линиями гиперкика таким образом, чтобы можно было попасть из любого города в любой другой и стоимость строительства была минимальна.
Формат ввода
Первая строка ввода содержит пять целых чисел – количество городов N (2  N  3000) и координаты концов отрезка-хребта X_1,\ Y_1,\ X_2,\ Y_2 (0\ ≤\ X_1,\ Y_1,\ X_2,\ Y_2\ ≤\ 10000). Далее следует N строк, содержащих по два целых числа в диапазоне от 0 до 10000 – координаты городов. Гарантируется, что координаты городов не совпадают и не попадают на хребет.
Формат вывода
Вывести одно число – минимальную суммарную длину линий с точностью 10^{-5}.

Пример ввода

3 1 5 4 1
2 2
3 5
5 3

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

7.30056
loading