세계 일주

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

요약
이미 지나간 점을 다시 지나지 않으면서 n개 국가를 모두 한 번씩 방문하고 출발점으로 돌아오는 최소 비용의 일주 경로를 구하고, 불가능하면 -1을 출력한다.
난이도

어려움10점 중 8점

유형
기하, 완전 탐색, 조합론
정답자
아직 제출이 없습니다

문제

흐즈로는 어느 날 2차원 메타버스를 방문하였습니다. 2차원 메타버스에서 두 점 사이의 거리는 유클리드 거리 d(A,B)=(x_A−x_B)2+(y_A−y_B)2d(A,B)=\sqrt{(x\_A-x\_B)^2+(y\_A-y\_B)^2}로 정의합니다. 메타버스에는 nn개의 국가가 있는데, 각 국가는 한 점 (x_i,y_i)(x\_i,y\_i)로 구성되어 있습니다. 메타버스 세계의 평화 협정에 따라 서로 다른 두 국가가 같은 점을 차지하지 않으며, 어떤 세 국가도 한 직선 위에 있지 않습니다. 흐즈로는 2차원 메타버스에서 세계 일주를 하면 재미있을 것으로 생각하였습니다. 흐즈로의 세계 일주는 다음과 같은 규칙을 따릅니다.

  • 우선 한 국가를 임의로 정합니다. 흐즈로는 그 국가에서 시작해 모든 국가를 한 번씩 지난 뒤 시작한 국가로 돌아옵니다. 국가와 국가 사이를 이동할 때는 두 국가 사이의 최단 경로를 따라 이동합니다. 이때 이동한 거리의 합이 세계 일주의 비용이 됩니다.
  • 이미 본 것을 다시 봐야 한다면 흐즈로는 지루함을 호소할 것입니다. 따라서 세계 일주 중에 이미 지난 점을 다시 지날 수 없습니다. 이는 국가에 해당하지 않는 점도 포함합니다. 단, 모든 국가를 지난 후 시작한 국가에 도착하는 시점은 예외로 둡니다.

흐즈로는 이 규칙에 따라 세계 일주를 할 수 있을지 궁금했습니다. 흐즈로가 세계 일주를 할 수 있는지 판단하고, 할 수 있다면 세계 일주의 최소 비용을 출력해 주세요.

입력

첫 번째 줄에 국가의 개수 nn이 주어집니다. (3≤n≤103 \le n \le 10)

두 번째 줄부터 nn개의 줄에 걸쳐 각 줄에 국가가 차지하는 점의 좌표에 해당하는 두 정수 x_ix\_i와 y_iy\_i가 공백으로 분리되어 주어집니다. (−106≤x_i,y_i≤106-10^6 \le x\_i,y\_i \le 10^6)

서로 다른 두 국가가 같은 점을 차지하지 않으며, 어떤 세 국가도 한 직선 위에 있지 않음이 보장됩니다.

출력

흐즈로가 규칙에 따라 세계 일주를 할 수 있다면, 그 최소 비용을 한 줄에 출력합니다. 규칙에 따른 세계 일주가 불가능하다면, −1-1을 한 줄에 출력합니다.

문제의 정답과 출력 간의 절대 오차 또는 상대 오차가 10−610^{-6} 이하일 경우 정답으로 인정됩니다.

예제1

  1. 예제 1

    입력
    4
    0 1
    0 -1
    2 0
    -2 0
    
    예상 출력
    8.944271909999