풍선 점 잇기
시간 제한2초메모리 제한512 MB
부풀리는 시간을 정해 남은 시간 동안 n-1개의 구면 최단 경로를 그릴 때, 완성된 그림의 총 길이가 최대가 되도록 만든다.
문제
점 잇기 놀이를 해 본 적이 있는가? 그림에 소질이 없는 사람도 점 잇기로는 근사한 그림을 그릴 수 있다. 종이에 점이 개 있고 각 점에는 부터 까지의 정수가 하나씩 붙어 있다. 여기에 선분 개를 긋는다. 번과 번을 잇고, 번과 번을 잇고, 번과 번을 잇는 식으로 끝까지 이어 나가면 그림이 완성된다. 다음은 점을 잇기 전과 후의 예다.

이번에는 풍선 표면에 점 잇기 그림을 그리려고 한다. 풍선은 완전한 구라고 가정한다. 처음에 풍선의 반지름은 1센티미터다. 표면에 점 개를 그려 두고 각각 번부터 번까지 번호를 매겼다. 풍선을 불수록 점 사이의 간격은 점점 벌어진다. 목표는 그림을 최대한 크게 만드는 것, 즉 선 개의 길이 합을 최대로 만드는 것이다.
그림이 흐려지지 않도록 풍선을 먼저 끝까지 불고, 그 뒤에야 선 개를 그린다. 풍선은 1분에 세제곱센티미터씩 부풀릴 수 있고, 선은 1분에 센티미터씩 그릴 수 있다. 번 점에서 번 점으로 선을 그을 때는 풍선 표면을 따라 최단 경로로 긋는다. 최단 경로가 여러 개인 경우도 있지만, 이 문제는 길이만 따지므로 어느 쪽을 그리든 결과는 같다.
쓸 수 있는 시간은 모두 분이다. 풍선을 부는 시간과 선을 그리는 시간을 합쳐 분을 넘길 수 없다. 그리기를 마쳤을 때 선 개는 모두 완성되어 있어야 한다. 그릴 수 있는 길이 합의 최댓값을 구하여라.
입력
첫째 줄에 정수 , , , 가 주어진다. ()은 점의 개수, ()는 풍선을 불고 선 개를 그리는 데 쓸 수 있는 전체 시간(분), ()는 1분에 부풀릴 수 있는 부피(세제곱센티미터), ()는 1분에 그을 수 있는 선의 길이(센티미터)다.
다음 개 줄에는 번부터 번까지 점의 위치가 순서대로 주어진다. 풍선의 중심은 원점이다. 각 줄에는 실수 와 , 정수 ()가 주어진다. 점의 좌표는 이고 이다. 이 보장되며 와 의 단위는 센티미터다. 와 는 소수점 아래 최대 6자리까지 주어진다.
선끼리 서로 만나거나 완전히 겹칠 수 있다. 겹치는 부분은 겹친 횟수만큼 거듭 세어서 더한다. 반지름이 1인 풍선 위에 이 그림을 분 안에 그릴 수 있다는 것은 보장된다.
출력
그릴 수 있는 그림의 길이 합의 최댓값을 센티미터 단위로 출력한다. 소수점 아래 일곱째 자리에서 반올림하여 소수점 아래 여섯 자리를 정확히 출력한다.
힌트
인 경우를 조심해야 한다. 을 계산하면 부동소수점 오차 때문에 처럼 아주 작은 음수가 나올 수 있고, 그러면 제곱근을 구하는 데 실패한다. 같은 이유로 두 점이 이루는 각의 코사인값도 을 살짝 벗어날 수 있다. 아크코사인을 취하기 전에 값을 이 범위로 잘라 주면 안전하다.