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

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

사회적 거리 두기

면접 대비

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

요약
n개의 콘센트 위치 중 s개를 골라 선택한 좌석 사이 최소 거리가 최대가 되도록 한다.
난이도

보통10점 중 5점

유형
이분 탐색, 그리디, 정렬, 배열
정답자
아직 제출이 없습니다

문제

Albert는 L대학에서 주최하는 Hackathon 행사 진행을 도와주기로 했는데, 사회적 거리 두기 방침에 따라 모든 참가자를 최대한 멀리 떨어뜨려 좌석을 배정하려 한다. 이를 위해 아주 긴 복도를 따라 특정 위치에 모니터, 책상, 의자를 두는 식으로 좌석을 배정하고, 각 좌석에는 최대 한 팀만 앉을 수 있다. 총 ss개의 팀이 행사에 참가하고, 복도를 따라 총 nn곳에 전원 공급이 가능한 콘센트가 설치되어 있다. 좌석은 반드시 콘센트가 설치된 곳에만 둘 수 있다. 편의상 콘센트가 설치된 지점들의 위치를 x[1],x[2],…,x[n]x[1], x[2], \ldots, x[n]이라 하자. 각 x[i]x[i]는 복도 입구로부터의 거리를 나타낸다. 즉, ii번째 콘센트는 복도 입구로부터 x[i]x[i]만큼 떨어진 곳에 있다.

Albert는 nn개의 콘센트 위치 중 ss개를 골라 좌석을 배정하되, 가장 가까운 두 좌석 사이의 거리 DD가 최대가 되도록 하고 싶다.

예를 들어 n=3n = 3, s=3s = 3이고 x=[10,100,200]x = [10, 100, 200]이라 하자. 이때 n=sn = s이므로 각 콘센트 위치에 좌석을 설치해야 한다. 가장 가까운 두 좌석 사이의 거리는 100−10=90100 - 10 = 90이다. 다른 예로 n=6n = 6, s=4s = 4이고 x=[11,19,24,26,29,30]x = [11, 19, 24, 26, 29, 30]이라 하자. 이때 x[1]=11x[1] = 11, x[2]=19x[2] = 19, x[3]=24x[3] = 24, x[4]=29x[4] = 29 각각에 좌석을 설치하면 가장 가까운 두 좌석 사이의 거리는 5가 된다. x[1]=11x[1] = 11, x[2]=19x[2] = 19, x[3]=24x[3] = 24, x[4]=30x[4] = 30을 고르는 것도 가능하다. 가장 가까운 두 좌석 사이의 거리가 6 이상이 되도록 좌석 4개를 설치하는 방법은 없다.

입력으로 nn, ss, 그리고 x[1],…,x[n]x[1], \ldots, x[n]이 주어지면 가능한 가장 큰 DD 값을 출력하는 프로그램을 작성하시오.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 두 줄에 걸쳐 주어진다.

첫 줄에 nn과 ss가 공백으로 구분되어 주어진다. 다음 줄에 설치된 콘센트의 위치를 나타내는 nn개의 정수가 공백으로 구분되어 주어진다.

출력

각 테스트 케이스에 대해 달성 가능한 최대 DD 값을 출력한다.

제한

  • 1≤T≤101 \le T \le 10
  • 2≤s≤n≤200,0002 \le s \le n \le 200,000
  • 1≤x[i]≤1,000,000,0001 \le x[i] \le 1,000,000,000
  • x[i]x[i] 값은 중복되지 않는다.

예제1

  1. 예제 1

    입력
    3
    3 3
    10 100 200
    7 3
    28 11 17 19 21 22 23
    6 4
    11 19 24 26 29 30
    
    예상 출력
    90
    8
    5