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

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

제자리 멀리뛰기

면접 대비

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

요약
0에서 d까지 이동할 때 밟는 지점 사이 최소 간격이 최대가 되도록 n개의 돌 중 정확히 m개를 제거하고 그 값을 구한다.
난이도

보통10점 중 6점

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

문제

체육 시간에 제자리 멀리뛰기 훈련을 한다. 훈련장은 끓는 용암으로 가득 차 있어서, 학생은 용암 위에 놓인 돌섬을 딛으며 반대편 탈출구까지 건너가야 한다.

학생이 출발하는 돌섬은 위치 00에 있고, 탈출구는 위치 dd에 있다. 출발 돌섬과 탈출구 사이에는 작은 돌섬이 nn개 있으며, 각 돌섬의 위치는 출발 돌섬으로부터의 거리로 주어진다.

선생님은 이 nn개의 작은 돌섬 중 정확히 mm개를 제거한다. 학생은 남은 n−mn-m개의 작은 돌섬을 모두 딛으면서 출발 돌섬에서 탈출구까지 위치 순서대로 점프한다. (두 돌섬이 아무리 멀리 떨어져 있어도 점프는 반드시 성공하며, 용암에 빠지는 일은 없다.)

한 번의 점프 거리는 연속해서 딛는 두 지점 사이의 거리이다. 즉 출발 돌섬, 남은 작은 돌섬들, 탈출구를 위치 순서대로 늘어놓았을 때 이웃한 두 지점 사이의 거리들이 각 점프 거리가 된다.

제거할 mm개의 돌섬을 잘 골라 학생이 뛰는 점프 거리의 최솟값을 최대로 만들고자 한다. 이때 가능한 최댓값을 구하여라.

입력

첫째 줄에 출발 돌섬에서 탈출구까지의 거리 dd (1≤d≤1091 \le d \le 10^9), 작은 돌섬의 수 nn (0≤n≤500000 \le n \le 50000), 제거할 돌섬의 수 mm (0≤m≤n0 \le m \le n)이 공백으로 구분되어 주어진다.

둘째 줄부터 nn개의 줄에 걸쳐 각 작은 돌섬의 위치(출발 돌섬으로부터의 거리)가 한 줄에 하나씩 정수로 주어진다. 모든 돌섬의 위치는 서로 다르다.

출력

mm개의 돌섬을 제거한 뒤 얻을 수 있는, 점프 거리의 최솟값의 최댓값을 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    25 5 2
    2
    14
    11
    21
    17
    
    예상 출력
    4
    
  2. 예제 2

    입력
    10 3 0
    2
    5
    8
    
    예상 출력
    2
    
  3. 예제 3

    입력
    10 2 1
    3
    7
    
    예상 출력
    3