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

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

국경 지키기

면접 대비

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

요약
길이가 L인 원형 국경에 최대 M개의 망루를 추가해 이웃한 망루 사이의 가장 큰 간격이 최소가 되도록 합니다.
난이도

보통10점 중 5점

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

문제

새로 임명된 경비 대장은 국경 방어를 강화하기로 했다. 이웃 나라 몇 곳이 핵무기를 개발한다는 소문이 돌아 궁수 탑을 더 세워야 한다. 침입자가 다가올 때 빨리 발견하려면 이웃한 두 탑 사이 거리의 최댓값을 최대한 줄여야 한다.

국경은 00에서 LL까지 이어지며 양 끝이 맞붙은 둘레 LL짜리 폐곡선으로 본다. 이 나라는 내륙국이라 첫 탑과 마지막 탑도 서로 이웃이다. 즉 좌표 00과 LL은 같은 지점이다. 국경 위에는 낡은 탑 NN개가 이미 서 있다. 예산으로는 새 탑을 최대 MM개까지 놓을 수 있고, 놓는 위치가 정수 좌표일 필요는 없다. 탑을 모두 놓은 뒤 이웃한 두 탑 사이 거리의 최댓값이 가장 작아지도록 할 때, 그 최댓값을 구하라.

국경 위에 탑이 하나뿐이면 그 탑은 자기 자신과 이웃하고, 이웃한 탑 사이의 거리는 LL이다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 다음 TT개의 줄에 테스트 케이스가 한 줄씩 주어진다. 각 줄은 정수 NN, MM, LL로 시작한다. NN은 이미 서 있는 탑의 수, MM은 새로 놓을 수 있는 탑의 최대 개수, LL은 국경의 길이다. 그 뒤에 기존 탑의 위치 tit_i가 NN개 이어진다.

  • 0<T≤1000 < T \le 100
  • 0≤N≤200000 \le N \le 20000
  • 0<M≤200000 < M \le 20000
  • 0<L≤100000000 < L \le 10000000
  • 0≤ti<L0 \le t_i < L이며, 소수점 아래 자릿수는 최대 6자리다.
  • 같은 위치에 서 있는 탑은 없다.

출력

각 테스트 케이스마다 이웃한 두 탑 사이 거리의 최댓값이 가질 수 있는 최솟값을 소수점 아래 정확히 6자리로 반올림해 한 줄에 출력한다. 답이 55면 5.000000을 출력한다. 테스트 데이터의 모든 답은 반올림 방향이 갈리는 경계에서 10−910^{-9}보다 멀리 떨어져 있으므로, 배정밀도 실수로 계산해도 출력은 같다.

예제7

  1. 예제 1

    입력
    2
    0 3 15
    2 1 1000 667.4 333.8
    
    예상 출력
    5.000000
    333.600000
    
  2. 예제 2

    입력
    1
    1 1 10 0.0
    
    예상 출력
    5.000000
    
  3. 예제 3

    입력
    3
    0 1 10000000
    0 20000 10000000
    0 3 10
    
    예상 출력
    10000000.000000
    500.000000
    3.333333
    
  4. 예제 4

    입력
    1
    3 4 100 0.0 10.0 30.0
    
    예상 출력
    17.500000
    
  5. 예제 5

    입력
    1
    3 1 100 10.0 20.0 30.0
    
    예상 출력
    40.000000
    
  6. 예제 6

    입력
    1
    5 3 50 40.5 2.25 33.0 11.75 49.999999
    
    예상 출력
    9.499999
    
  7. 예제 7

    입력
    1
    4 5 7 0.000001 1.234567 3.999999 6.5
    
    예상 출력
    0.921811