개미

시간 제한3초메모리 제한128 MB

요약
n개의 개미 군락과 n개의 사과나무를 유클리드 거리의 제곱을 비용으로 하여 완전 매칭했을 때의 최소 총비용을 구합니다.
난이도

보통10점 중 7점

유형
그래프, 수학, 동적 계획법
정답자
아직 제출이 없습니다

문제

어린 자연주의자 Bill은 학교에서 개미를 연구한다. Bill의 개미들은 사과나무에 사는 진딧물을 먹고 살며, 각 개미 군집은 먹이를 얻기 위해 자기만의 사과나무 한 그루가 필요하다.

Bill은 nn개의 개미 군집과 nn그루의 사과나무의 좌표가 표시된 지도를 가지고 있다. 그는 각 개미 군집을 서로 다른 사과나무 한 그루와 정확히 하나씩 연결하려고 한다.

좌표 (xc,yc)(x_c, y_c)에 있는 군집을 좌표 (xt,yt)(x_t, y_t)에 있는 사과나무와 연결하는 비용은 두 점 사이의 유클리드 거리의 제곱으로 정의한다:

(xc−xt)2+(yc−yt)2.(x_c - x_t)^2 + (y_c - y_t)^2.

nn개의 군집과 nn그루의 나무를 일대일로 짝지을 수 있는 모든 방법 중에서, 전체 비용의 합이 최소가 되도록 할 때 그 최솟값을 구하라.

그림에서 개미 군집은 빈 원으로, 사과나무는 채워진 원으로 나타내며, 선은 하나의 가능한 짝짓기를 보여준다.

입력

첫째 줄에 개미 군집과 사과나무의 개수 nn (1≤n≤1001 \le n \le 100)이 주어진다.

이어지는 nn개의 줄에는 개미 군집이, 그다음 nn개의 줄에는 사과나무가 주어진다. 각 군집과 나무는 데카르트 평면 위의 정수 좌표 xx, yy (−10 000≤x,y≤10 000-10\,000 \le x, y \le 10\,000)로 표현된다. 2n2n개의 점은 모두 서로 다르다.

출력

각 개미 군집을 서로 다른 사과나무 한 그루와 짝지을 때, 전체 연결 비용의 합의 최솟값을 정수 하나로 출력한다. 하나의 연결 비용은 군집과 나무 사이의 유클리드 거리의 제곱이다.

예제3

  1. 예제 1

    입력
    5
    -42 58
    44 86
    7 28
    99 34
    -13 -59
    -47 -44
    86 74
    68 -75
    -68 60
    99 -60
    
    예상 출력
    26341
    
  2. 예제 2

    입력
    1
    0 0
    3 4
    
    예상 출력
    25
    
  3. 예제 3

    입력
    2
    0 0
    6 6
    6 5
    1 1
    
    예상 출력
    3