아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

정리정돈

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

요약
y축을 기준으로 대칭이고 같은 위치의 개수가 같아지도록 N개의 점을 옮길 때, 이동 거리의 합의 최솟값을 구한다.
난이도

보통10점 중 6점

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

문제

방바닥에 물건이 어지럽게 흩어져 있다. 방을 정확히 절반으로 나누는 직선을 LL이라고 하자. 물건이 놓인 임의의 위치를 LL에 대해 선대칭시킨 위치에도 물건이 있고, 두 위치에 놓인 물건의 개수가 서로 같으면 방이 깔끔하다고 한다.

물건을 옮기는 일은 힘들다. 그래서 물건을 하나씩 옮기되 이동 거리의 합을 최소로 만들려고 한다. 물건을 들지 않고 걷는 거리는 세지 않는다.

이 문제에서 LL은 yy축이고, 각 물건의 위치는 평면 좌표로 주어진다. 모든 물건을 깔끔하게 정리정돈했을 때 물건이 이동한 거리의 합의 최솟값을 구하자. 거리는 유클리드 거리 D=(x1−x2)2+(y1−y2)2D = \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2}를 쓴다. 물건은 정수 좌표가 아닌 위치에도 놓을 수 있다.

예를 들어 위 그림처럼 물건이 놓여 있으면 오른쪽 물건을 1만큼 아래로 내리는 것으로 정리정돈이 끝나고, 이동 거리의 합은 1이다.

입력

첫 줄에 물건의 개수 NN(1≤N≤1001 \le N \le 100)이 주어진다. 이어지는 NN개의 줄에 각 물건의 위치가 xx yy 순서로 주어진다. 두 좌표 모두 −1000-1000 이상 10001000 이하의 정수이다. 같은 위치에 놓인 물건은 없다.

출력

모든 물건을 깔끔하게 정리정돈했을 때 이동 거리의 합의 최솟값을 소수점 셋째 자리까지 반올림해 출력한다. 값이 정수여도 소수점 아래 세 자리를 모두 출력한다.

예제8

  1. 예제 1

    입력
    8
    2 2
    7 1
    9 -4
    -10 1
    -6 -9
    -6 10
    8 8
    2 -4
    
    예상 출력
    15.659
    
  2. 예제 2

    입력
    1
    0 0
    
    예상 출력
    0.000
    
  3. 예제 3

    입력
    1
    -1000 -1000
    
    예상 출력
    1000.000
    
  4. 예제 4

    입력
    2
    3 5
    -3 5
    
    예상 출력
    0.000
    
  5. 예제 5

    입력
    2
    1 -1000
    1 1000
    
    예상 출력
    2.000
    
  6. 예제 6

    입력
    2
    -5 0
    3 0
    
    예상 출력
    2.000
    
  7. 예제 7

    입력
    3
    0 0
    4 1
    -4 3
    
    예상 출력
    2.000
    
  8. 예제 8

    입력
    5
    0 -1000
    0 -1
    0 0
    0 7
    0 1000
    
    예상 출력
    0.000