보복

면접 대비

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

요약
남은 저장소와 심판 중 가장 가까운 쌍을 반복해서 고르되 인덱스가 작은 쪽을 우선하는 방식으로 타르 저장소와 깃털 창고를 심판에게 배정하고 총 거리를 구한다.
난이도

보통10점 중 5점

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

문제

어느 지역 대회의 코치들은 심판들에게 진저리가 났다. 지난 대회에서 90%가 넘는 팀이 단 한 문제도 풀지 못했고, 심지어 심판의 절반도 문제가 너무 어려워 풀지 못했다. 그래서 코치들은 심판들에게 타르를 바르고 깃털을 뿌리기로 했다. 그들은 모든 심판의 위치와 타르 저장소, 깃털 창고의 위치를 알고 있다. 각 심판에게 저장소 하나와 창고 하나를 배정해서 관련된 총 거리를 최소화하고 싶다. 하지만 이 문제는 어렵고 코치들에게는 풀 시간이 없다(심판들은 악하지만 멍청하지는 않아서, 자기가 일으킨 소요를 감지하고 마을을 떠날 준비를 하고 있다). 그래서 대신 탐욕적인 해법을 쓰기로 했다. 아무 타르 저장소와 아무 심판 위치 사이의 가장 작은 거리를 찾아 그 저장소를 그 심판에게 배정한다. 그리고 남은 저장소와 심판들로 같은 과정을 모든 심판에게 저장소가 배정될 때까지 반복한다. 타르 배정을 마친 뒤에는 깃털 창고와 심판들에 대해서도 같은 작업을 한다. 당신의 임무는 저장소와 창고, 그리고 그에 배정된 심판 사이의 총 거리를 구하는 것이다.

모든 심판, 타르 저장소, 깃털 창고에는 1, 2, ... 번호가 붙어 있다. 동점인 경우에는 항상 번호가 가장 작은 심판에게 먼저 저장소/창고를 배정한다. 그래도 동점이라면 번호가 가장 작은 저장소/창고를 쓴다.

서둘러야 한다. 심판들의 방 뒤에 정체불명의 밴이 나타났다는 목격담이 방금 들어왔다.

입력

입력의 첫 줄에는 세 양의 정수 n m p (1 ≤ n ≤ m, p ≤ 1 000)가 주어지며, 각각 심판, 타르 저장소, 깃털 창고의 수를 나타낸다. 그다음 n개의 줄에는 심판 1부터 시작해서 n명의 심판의 위치를 나타내는 두 정수 x y (|x|, |y| ≤ 10 000)가 주어진다. 이어서 타르 저장소 1부터 시작해서 m개의 저장소 위치를 나타내는 m개의 줄이, 그리고 창고 1부터 시작해서 p개의 창고 위치를 나타내는 p개의 줄이 주어진다.

출력

위에서 설명한 탐욕적인 방법으로 심판과 배정된 타르 저장소 및 깃털 창고 사이의 모든 거리의 합을 출력한다. 답의 절대 오차 또는 상대 오차는 10−6 이하여야 한다.

예제1

  1. 예제 1

    입력
    2 2 2
    1 0
    2 0
    0 0
    3 0
    1 1
    2 1
    
    예상 출력
    4.0