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

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

양 몰기

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

요약
각 양을 최대 K마리까지 받는 헛간에 배정해 가장 긴 이동 거리를 최소화하고 그 제곱을 출력합니다.
난이도

보통10점 중 6점

유형
이분 탐색, 그래프
정답자
아직 제출이 없습니다

문제

엘리와 양 떼가 또 곤란한 상황에 빠졌다. 하루 종일 풀을 뜯었으니 이제 밤 동안 안전하도록 양을 우리에 넣어야 한다. 우리 하나에는 양이 최대 KK마리까지 들어간다. 우리가 꽉 차지 않아도 되고 아예 비어 있어도 된다. 모든 양이 어느 우리 안에 들어가 있기만 하면 된다.

문제를 간단히 하려고 양은 평면 위 정수 좌표의 점 NN개로, 우리는 점 MM개로 나타낸다. 여러 양이 같은 좌표에 있을 수도 있고, 여러 우리가 같은 좌표에 있을 수도 있으며, 양과 우리가 같은 좌표에 있을 수도 있다.

양은 1초에 거리 1만큼 걷는다. 예를 들어 (0,0)(0, 0)에 있는 양이 (1,3)(1, 3)에 있는 우리로 가려면 약 3.16227766초가 걸리고, 우리가 (3,4)(3, 4)에 있으면 정확히 5초가 걸린다. 양은 모두 동시에 움직이고 서로의 이동을 방해하지 않는다.

모든 양이 우리에 들어가는 데 필요한 최소 시간을 구하라. 즉, 양이 각자 배정된 우리까지 가는 시간 중 가장 큰 값을 최소로 만들어라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 양의 수 NN, 우리의 수 MM, 우리 하나에 들어갈 수 있는 양의 최대 수 KK가 주어진다.

이어지는 NN개의 줄에는 양의 좌표 XX와 YY가 주어진다.

그다음 MM개의 줄에는 우리의 좌표 XX와 YY가 주어진다.

  • 1≤T≤201 \le T \le 20
  • 1≤N,M,K≤2001 \le N, M, K \le 200
  • −1000≤X,Y≤1000-1000 \le X, Y \le 1000
  • N≤M×KN \le M \times K

출력

각 테스트 케이스마다 최소 시간의 제곱을 정수로 한 줄에 출력한다. 좌표가 모두 정수이므로 최소 시간의 제곱은 항상 정수다. 예를 들어 최소 시간이 5초라면 25를 출력한다.

예제5

  1. 예제 1

    입력
    2
    5 3 2
    2 13
    9 6
    4 8
    13 7
    11 3
    2 11
    10 6
    4 12
    7 3 3
    -959 -542
    -669 -513
    160 717
    473 344
    -51 -548
    703 -869
    270 -181
    957 -509
    -6 937
    -175 434
    
    예상 출력
    61
    1567232
    
  2. 예제 2

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

    입력
    1
    2 2 1
    0 0
    0 1
    0 1
    0 10
    
    예상 출력
    81
    
  4. 예제 4

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

    입력
    2
    1 1 1
    -1000 -1000
    1000 1000
    2 2 1
    -1000 1000
    1000 -1000
    1000 1000
    -1000 -1000
    
    예상 출력
    8000000
    4000000