만드는 중입니다

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

울타리가 좋은 이웃을 만든다

시간 제한4초메모리 제한2048 MB

요약
두 형제의 땅 사이에 울타리가 정확히 두 개 놓이도록 볼록다각형을 삼각분할하고, 집을 지나는 울타리를 제외한 총 울타리 길이를 최소화합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 기하
정답자
아직 제출이 없습니다

문제

글레트리안의 왕은 넓은 영지를 삼각형 구획으로 나누어, 자격 있는(즉, 부유한) 신하들에게 나눠 주려고 합니다. 영지는 볼록다각형이고 경계에는 이미 울타리가 세워져 있습니다. 따라서 새로 드는 비용은 땅을 나누는 데 쓰는 새 울타리뿐입니다. 새 울타리는 모두 영지의 기존 꼭짓점 두 개를 잇는 직선이며, 어느 두 울타리도 서로 교차하지 않습니다. 왕은 절약가(즉, 인색한 사람)라서 울타리를 가능한 한 적게 쓰고 싶어 합니다.

문제가 하나 있습니다. 이미 영지에 집을 가진 아들이 둘 있습니다. 한 명은 귀여운 어린 소년이고, 다른 한 명은 다소 둔합니다. 둘은 사이가 좋지 않습니다. 두 아들의 구획 사이에 울타리를 하나만 세우는 것은 불가능합니다. 끊임없이 다투고, 심하면 몸싸움까지 날 수 있기 때문입니다. 왕은 두 아들이 언젠가 서로를 아끼게 되기를 바라며, 이를 위해 둘을 이어 줄 훌륭한 중재자 한 명이 필요하다고 봅니다. 그래서 형제의 구획 사이에 울타리를 정확히 두 개 세우고, 그 두 울타리 사이의 구획 하나에 자원자(즉, 징집된 사람)를 배치해 두 형제를 잇는 중개인 역할을 맡기려 합니다. 왕은 여전히 공사비를 최소화하려 하며, 이는 사용하는 울타리 길이를 최소화한다는 뜻입니다. 또한 형제의 집을 직접 지나는 울타리 후보는 삼각분할에 쓸 수 없습니다.

그림 E.1은 예제 입력 1에 해당하며, 형제의 위치는 十 기호로 표시했습니다. 오른쪽 분할은 울타리를 더 적게 쓰지만, 형제의 위치 사이에 울타리가 셋 이상 놓이므로 해가 아닙니다. 올바른 삼각분할은 왼쪽입니다.

그림 E.1: 예제 입력 1. (a) 올바른 해. (b) 잘못된 해.

입력

입력은 영지의 꼭짓점 개수를 나타내는 정수 nn (6≤n≤5006 \leq n \leq 500) 하나로 시작합니다. 이어서 각 꼭짓점의 위치를 시계 방향 순서로 나타내는 정수 쌍 xix_i yiy_i (∣xi∣,∣yi∣≤3000|x_i|,|y_i|\leq 3000)가 nn개 주어집니다. 꼭짓점 위치는 서로 중복되지 않으며, 다각형은 볼록합니다. 연속한 세 꼭짓점이 한 직선 위에 놓이는 경우는 없습니다. 마지막 두 줄에는 각각 좌표 쌍이 하나씩 있습니다. 첫 줄은 첫째 형제의 위치 bx1bx_1 by1by_1 (∣bx1∣,∣by1∣≤3000|bx_1|,|by_1|\leq 3000)이고, 둘째 줄은 둘째 형제의 위치 bx2bx_2 by2by_2 (∣bx2∣,∣by2∣≤3000|bx_2|,|by_2|\leq 3000)입니다. 두 형제의 위치는 서로 다르며 다각형의 내부에 있습니다. 모든 좌표의 단위는 킬로미터입니다.

출력

위의 모든 조건을 만족하는 울타리 총 길이의 최솟값을 킬로미터 단위로 출력합니다. 정답과의 절대 오차가 10−310^{-3} 이내이면 정답으로 인정합니다. 조건을 만족하는 분할이 없으면 IMPOSSIBLE을 출력합니다.

예제3

  1. 예제 1

    입력
    6
    0 -50
    -40 10
    0 50
    80 50
    120 0
    80 -50
    -10 0
    100 0
    
    예상 출력
    354.553591
    
  2. 예제 2

    입력
    6
    0 -50
    -30 0
    0 50
    90 50
    120 0
    90 -50
    0 5
    90 -5
    
    예상 출력
    IMPOSSIBLE
    
  3. 예제 3

    입력
    12
    0 100
    50 86
    86 50
    100 0
    86 -50
    50 -86
    0 -100
    -50 -86
    -86 -50
    -100 0
    -86 50
    -50 85
    60 60
    -60 -60
    
    예상 출력
    1113.370332