조직 구성

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

보통7이분 탐색정렬기하아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

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

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

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

입력

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

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

이어지는 NN개의 줄에는 직원 한 명의 검사 결과 xxyy가 공백 하나로 구분되어 주어진다. (0x,y1000000 \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)\}로 나눌 때 SISI33으로 가장 크다. 이 값은 D((0,1),(2,2))D((0,1), (2,2))D((1,0),(2,2))D((1,0), (2,2))에서 나온다.