만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

크루즈

시간 제한2초메모리 제한512 MB

요약
피레우스에서 출발해 섬들을 지나는 닫힌 항로를 골라, 모은 점수를 항로 길이로 나눈 비율이 최대가 되도록 한다.
난이도

어려움10점 중 8점

유형
기하, 동적 계획법, 이분 탐색, 그리디
정답자
아직 제출이 없습니다

문제

컴퓨터공학을 공부하는 학생들이 여름휴가를 맞아 아테네에 모였다. 요트로 에게해를 돌아볼 방법을 궁리하다가 다음 게임을 만들었다.

  • 섬마다 점수가 하나씩 정해져 있다.
  • 크루즈는 피레아스 항에서 출발해 다시 피레아스 항으로 돌아온다. 피레아스의 좌표는 (0,0)(0, 0)이고, 모든 섬은 피레아스보다 동쪽에 있다.
  • 항로는 섬에서 섬으로, 또는 섬에서 피레아스로 곧게 이은 선분만 쓸 수 있다. 피레아스를 빼면 에게해의 어떤 점도 두 번 지날 수 없다.
  • 항로가 지나는 섬과 항로가 감싼 영역 안에 놓인 섬의 점수를 모두 얻는다. 항로 위에 놓인 섬의 점수도 얻는다.
  • 얻은 점수의 합을 항로 전체 길이로 나눈 비율 RR을 최대로 만드는 것이 목표다.

각 섬의 좌표와 점수가 주어질 때, 최적 항로의 비율 RR을 구하라.

아래 그림처럼 A부터 F까지 여섯 섬이 있다고 하자. 그림에서 피레아스는 P로 적었다. 예를 들어 섬 B의 좌표는 (4,2)(4, 2)이고 점수는 66이다.

다음 세 그림은 피레아스에서 출발해 피레아스로 돌아오는 항로 세 가지를 보여 준다. 그림 아래에는 항로마다 비율 RR을 적었다. 셋 중에서는 맨 왼쪽 항로의 RR이 가장 크다. 맨 오른쪽 항로에서는 항로가 감싼 영역 안에 놓인 섬 E의 점수까지 얻는다.

항로 P, A, B, C, P항로 P, C, E, F, P항로 P, C, F, P
R=5+6+22+8+2+32≃1.041226R = \frac{5+6+2}{2+\sqrt{8}+2+\sqrt{32}} \simeq 1.041226R=2+5+632+5+2+17≃0.967965R = \frac{2+5+6}{\sqrt{32}+\sqrt{5}+\sqrt{2}+\sqrt{17}} \simeq 0.967965R=2+5+632+3+17≃1.017218R = \frac{2+5+6}{\sqrt{32}+3+\sqrt{17}} \simeq 1.017218

항로 P, B, E, C, F, E, P와 항로 P, B, F, C, P는 규칙에 맞지 않는다. 앞의 항로는 섬 E를 두 번 지나고, 뒤의 항로는 선분 BF와 선분 CP의 교점을 두 번 지난다.

입력

첫 줄에 섬의 개수 NN이 주어진다. 다음 NN개 줄에는 각각 정수 세 개 XiX_i, YiY_i, PiP_i가 주어진다. (Xi,Yi)(X_i, Y_i)는 ii번 섬의 좌표이고, PiP_i는 그 섬에 정해진 점수다.

출력

최적 항로의 비율 RR을 소수점 아래 여섯째 자리까지 반올림해 한 줄에 출력한다.

제한

  • 2≤N≤1002 \le N \le 100
  • 0<Xi≤100000 < X_i \le 10000
  • −10000≤Yi≤10000-10000 \le Y_i \le 10000
  • 0≤Pi≤100000 \le P_i \le 10000
  • 좌표가 같은 섬은 없다.
  • 피레아스에서 볼 때 서로 다른 방향에 놓인 섬이 적어도 두 개 있다. 즉 모든 섬이 피레아스에서 뻗어 나가는 한 반직선 위에 놓이는 입력은 주어지지 않으므로, 규칙에 맞는 항로가 언제나 하나 이상 있다.

예제2

  1. 예제 1

    입력
    6
    2 0 5
    4 2 6
    4 4 2
    2 6 1
    2 3 5
    1 4 6
    
    예상 출력
    1.751999
    
  2. 예제 2

    입력
    2
    1 0 10
    1 1 10
    
    예상 출력
    5.857864