수 고르기

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

요약
수열에서 정확히 K개의 원소를 지운 뒤 남은 원소들의 최대 차이와 최소 인접 차이의 합이 최소가 되도록 하는 값을 구한다.
난이도

보통10점 중 7점

유형
정렬, 슬라이딩 윈도우, 그리디, 투 포인터
정답자
아직 제출이 없습니다

문제

수열이 하나 주어진다. 이 수열의 임의의 두 원소의 차이를 생각할 때, 그 차이들 중 가장 큰 값을 MM, 가장 작은 값을 mm이라고 하자. (즉, MM은 최댓값에서 최솟값을 뺀 값이고, mm은 원소들을 정렬했을 때 서로 이웃한 두 값의 차이 중 가장 작은 값이다.)

크기가 NN인 수열 VV가 주어진다. 이 수열에서 정확히 KK개의 수를 제거하여, 남은 N−KN-K개의 수에 대한 M+mM+m을 가능한 한 작게 만드는 프로그램을 작성하시오.

입력

첫째 줄에 두 정수 NN (3≤N≤1063 \le N \le 10^6)과 KK (1≤K≤N−21 \le K \le N-2)가 주어진다.

둘째 줄에 수열 VV의 원소 NN개가 공백으로 구분되어 주어진다 (−5×106≤Vi≤5×106-5 \times 10^6 \le V_i \le 5 \times 10^6).

출력

첫째 줄에 가능한 가장 작은 M+mM+m의 값을 출력한다.

예제3

  1. 예제 1

    입력
    5 2
    -3 -2 3 8 6
    
    예상 출력
    7
    
  2. 예제 2

    입력
    6 2
    -5 8 10 1 13 -1
    
    예상 출력
    13
    
  3. 예제 3

    입력
    6 3
    10 2 8 17 2 17
    
    예상 출력
    6