유클리드 순회 외판원 문제(Euclidean TSP)를 푸는 Arora-Mitchell 근사 알고리즘은 1998년에 Sanjeev Arora와 Joseph S. B. Mitchell이 각각 독립적으로 발견했다. 이 알고리즘은 d차원에서 최적 순회 경로의 길이를 1+1/c배 이내로 근사하고, 실행 시간은
n(logn)O((cd)d−1)
이다. 여기서 n은 순회 경로에 있는 노드의 수다.
미로슬라바는 컴퓨터 보안 회사에서 일하는데, 유럽 곳곳에 있는 데이터 센터의 공유 암호 키를 갱신할 때가 됐다. 미로슬라바는 전용기를 빌려 유럽의 모든 주요 공항에서 기다리는 직원에게 키를 전달하려 한다. 물론 최대한 빨리 돌아오고 싶다.
회사에는 1초에 p⋅109번의 연산을 수행하는 컴퓨터가 있다. 유럽을 2차원 평면으로 근사하면 이 컴퓨터에서 알고리즘은 정확히
p⋅109n(log2n)c2
초 동안 돌고, 최적 순회 경로의 (1+1/c) 근사를 내놓는다.
c는 미로슬라바가 직접 정하는 매개변수인데, 양쪽 극단이 모두 손해다. c를 너무 작게 잡으면 알고리즘은 금방 끝나지만 날아다녀야 하는 경로가 길어진다. 너무 크게 잡으면 경로는 짧아지지만 컴퓨터 앞에서 기다리는 시간이 길어진다.
미로슬라바는 예전 회사에서 유럽 주요 공항 전체의 최적 순회 경로가 s미터라는 사실을 알아냈다. 다만 직급이 낮아서 실제 경로가 무엇인지는 모른다. 전용기의 속도가 초속 v미터이므로, 매개변수 c로 얻은 경로를 도는 데는 s(1+1/c)/v초가 걸린다. 착륙해서 키 사본을 남기고 다시 이륙하는 시간은 0으로 본다.
미로슬라바가 최적의 매개변수 c를 골랐을 때, 알고리즘을 실행하고 키를 모두 전달하는 데 걸리는 시간을 구하시오.
첫째 줄에 네 수가 주어진다.
모든 실수는 소수점 아래 자릿수가 10자리 이하다.
키를 모두 전달하는 데 걸리는 가장 짧은 시간 t(초)와 그 시간을 만드는 매개변수 c를 공백 하나로 구분해 한 줄에 출력한다. 두 값 모두 소수점 아래 여섯째 자리까지 반올림해 출력한다.
총 시간은 c>0에서 아래로 볼록하므로 최솟값과 그 최솟값을 만드는 매개변수는 유일하다.