만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

조직 구성

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

요약
N개의 점을 k개의 비어 있지 않은 팀으로 나눌 때, 서로 다른 팀에 속한 점 사이의 맨해튼 거리의 최솟값이 최대가 되도록 만든다.
난이도

보통10점 중 7점

유형
이분 탐색, 정렬, 기하
정답자
아직 제출이 없습니다

문제

어느 회사에 직원 NN명이 있고, 이들을 비어 있지 않은 kk개의 팀으로 나눈다. 이 회사는 무엇이든 수치로 관리한다.

  • 직원 aa는 검사를 두 번 받았고, 그 결과로 두 수 xax_a와 yay_a를 얻었다.
  • 직원 aa와 bb의 차이는 D(a,b)=∣xa−xb∣+∣ya−yb∣D(a, b) = |x_a - x_b| + |y_a - y_b|이다.
  • 회사의 조직력 지수 SISI는 서로 다른 팀에 속한 두 직원 aa, bb에 대한 D(a,b)D(a, b)의 최솟값이다.

내년에도 팀 수는 kk로 유지하지만, 조직력 지수가 가장 커지도록 직원을 다시 배치한다. 비어 있지 않은 kk개의 팀으로 나눌 때 얻을 수 있는 조직력 지수의 최댓값을 구하라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. (1≤T≤101 \le T \le 10)

각 테스트 케이스의 첫 줄에는 직원 수 NN과 팀 수 kk가 공백 하나로 구분되어 주어진다. (2≤k≤102 \le k \le 10, k≤N≤1000k \le N \le 1000)

이어지는 NN개의 줄에는 직원 한 명의 검사 결과 xx와 yy가 공백 하나로 구분되어 주어진다. (0≤x,y≤100 0000 \le x, y \le 100\,000)

출력

각 테스트 케이스마다 얻을 수 있는 조직력 지수의 최댓값을 한 줄에 하나씩 출력한다.

힌트

직원이 (0,0)(0, 0), (2,2)(2, 2), (3,2)(3, 2) 세 명이고 k=2k = 2라면, 두 팀 모두 비어 있으면 안 되므로 나누는 방법은 세 가지다. {(0,0)}\{(0,0)\}과 {(2,2),(3,2)}\{(2,2), (3,2)\}로 나누면 SI=min⁡{4,5}=4SI = \min\{4, 5\} = 4이고, {(0,0),(2,2)}\{(0,0), (2,2)\}와 {(3,2)}\{(3,2)\}로 나누면 SI=min⁡{5,1}=1SI = \min\{5, 1\} = 1이며, {(0,0),(3,2)}\{(0,0), (3,2)\}와 {(2,2)}\{(2,2)\}로 나누면 SI=min⁡{5,1}=1SI = \min\{5, 1\} = 1이다. 따라서 최댓값은 44이다.

직원이 (0,1)(0,1), (0,0)(0,0), (1,0)(1,0), (2,2)(2,2), (2,3)(2,3), (3,2)(3,2) 여섯 명이고 k=2k = 2라면 나누는 방법이 31가지인데, {(0,1),(0,0),(1,0)}\{(0,1), (0,0), (1,0)\}과 {(2,2),(2,3),(3,2)}\{(2,2), (2,3), (3,2)\}로 나눌 때 SISI가 33으로 가장 크다. 이 값은 D((0,1),(2,2))D((0,1), (2,2))와 D((1,0),(2,2))D((1,0), (2,2))에서 나온다.

예제2

  1. 예제 1

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

    입력
    1
    2 2
    0 0
    100000 100000
    
    예상 출력
    200000