두 워프 지점을 평면에 배치해 모든 항공편 시간의 제곱평균제곱근을 최소화할 때, 각 시간은 직선거리와 가장 가까운 워프까지의 거리 중 작은 값을 속도로 나눈 값입니다.
어려움8기하완전 탐색수학아직 제출이 없습니다시간 제한8초메모리 제한512 MB워프 드라이브 기술이 항공 여행을 바꾸고 있다. 지표면에 세운 워프 필드 위에 도달한 항공기는 원하는 목적지로 즉시 이동한다.
지금 기술로는 워프 필드를 세우는 비용이 커서 예산으로 두 개만 지을 수 있다. 대신 비용은 위치와 무관하므로 지표면 어디에나 세울 수 있고, 공항 위에 세워도 된다.
공항 위치와 공항 사이를 오가는 일방통행 항공편 목록이 주어진다. 평균 비용이 가장 작아지도록 워프 필드 두 개의 위치를 정하고, 그때의 평균 비용을 구하라. 평균 비용은 모든 항공편 이동 시간의 제곱평균제곱근이다.
m1∑j=1mtj2
m은 항공편 수이고 tj는 j번째 항공편이 걸리는 최단 시간이다. tj 값은 워프 필드의 위치에 따라 달라진다.
문제를 단순하게 만들기 위해 지표면은 평면으로 보고, 공항과 항공기와 워프 필드는 평면 위의 점으로 본다. 항공편마다 항공기가 다르므로 순항 속력도 다를 수 있다. 상승, 가속, 감속, 하강에 걸리는 시간은 0이다. 항공기가 워프 필드 위에 도달하면 그 뒤 목적지까지 걸리는 시간은 0이다. 공항 좌표는 정수이지만 워프 필드 좌표는 정수가 아니어도 된다.
따라서 워프 필드를 P와 Q에 놓으면, 출발 공항이 A이고 도착 공항이 B이며 순항 속력이 v인 항공편의 최단 시간은 다음과 같다.
t=vmin(∣AB∣,∣AP∣,∣AQ∣)
입력은 데이터 세트 35개 이하로 이루어지고, 각 데이터 세트의 형식은 다음과 같다.
n m
x1 y1
...
xn yn
a1 b1 v1
...
am bm vm
n은 공항 수, m은 항공편 수이다 (2≤n≤20, 2≤m≤40). 이어지는 n개 줄의 xi와 yi는 i번 공항의 좌표이고, 절댓값이 1000 이하인 정수이다. 그다음 m개 줄의 aj와 bj는 j번째 항공편의 출발 공항 번호와 도착 공항 번호이고, 1 이상 n 이하의 정수이다. vj는 j번째 항공편의 순항 속력, 즉 그 항공기가 시간 1 동안 이동하는 거리이다. vj는 소수점 아래 두 자리까지 주어지며 1 이상 10 이하이다.
다음을 만족한다.
입력의 끝은 0이 두 개 적힌 줄로 나타낸다.
각 데이터 세트마다 워프 필드 두 개를 가장 좋은 위치에 놓았을 때의 평균 비용을 한 줄에 하나씩 출력한다. 값은 소수점 아래 여섯째 자리까지 반올림해서 출력한다.