반원

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

요약
주어진 반원 안으로 N개의 점을 옮기는 최소 총 이동 거리를 구한다. 경계 위의 점은 안에 있는 것으로 본다.
난이도

보통10점 중 6점

유형
기하, 그리디, 수학, 구현
정답자
아직 제출이 없습니다

문제

22차원 좌표평면상의 점 NN개와 반원 하나가 주어진다.

(x_1,y_1)(x\_1, y\_1) 위치에 있는 점 하나를 (x_2,y_2)(x\_2, y\_2) 위치로 옮기려면 (x_1−x_2)2+(y_1−y_2)2\sqrt{(x\_1-x\_2)^2+(y\_1-y\_2)^2}만큼의 비용이 든다. 이때, 점을 반드시 정수 좌표 위치로 옮길 필요는 없다. 모든 점을 반원 안으로 옮기는 데 드는 최소 비용을 구하여라. 반원의 경계선 위에 있는 점은 반원 안에 있는 것으로 간주한다.

입력

첫째 줄에 점의 개수 NN이 주어진다. (1≤N≤100,000)(1 \leq N \leq 100\\,000)

둘째 줄부터 NN개의 줄에 걸쳐 각 점의 xx좌표와 yy좌표가 공백으로 구분되어 주어진다. (−1,000≤x,y≤1,000)(-1\\,000 \leq x, y \leq 1\\,000)

마지막 줄에 반원을 나타내는 두 점 AA와 BB의 좌표 x_A,y_A,x_B,y_Bx\_A, y\_A, x\_B, y\_B가 공백으로 구분되어 주어진다. AA와 BB의 좌표는 다르다. (−1,000≤x_A,y_A,x_B,y_B≤1,000)(-1\\,000 \leq x\_A, y\_A, x\_B, y\_B \leq 1\\,000)

점 AA는 원의 중심이며, 점 BB는 원의 둘레 위에 있는 점이다. AA를 중심으로 하고 BB를 지나는 원을 그렸을 때, 반원은 점 AA에서 BB로 향하는 선분의 방향을 기준으로 왼쪽 절반의 영역이다.

주어지는 모든 좌표는 정수이다.

출력

첫째 줄에 모든 점을 반원 안으로 옮기는 데 드는 최소 비용을 출력한다. 실제 정답과 출력값의 절대 오차 또는 상대 오차가 10−610^{-6} 이하라면 정답으로 인정한다.

예제1

  1. 예제 1

    입력
    3
    0 2
    3 2
    3 4
    2 2 2 3
    
    예상 출력
    3.4142135624