Closet

시간 제한5초메모리 제한1024 MB

요약
최대 M개의 옷을 제거해 남은 색들이 산 모양을 이루되 인접한 값의 감소나 증가가 x를 넘지 않게 만들 때, 가능한 가장 작은 x를 구한다.
난이도

보통10점 중 7점

유형
이분 탐색, 동적 계획법, 그리디, 누적 합
정답자
아직 제출이 없습니다

문제

태인이의 옷장에는 NN개의 옷이 일렬로 걸려 있다. 현재 왼쪽에서 ii번째 옷의 색은 c_ic\_i이다.

태인이는 어떤 정수 kk (1≤k≤N1\le k\le N)가 존재해 c_1≤c_2≤⋯≤c_k≥c_k+1≥⋯≥c_Nc\_1\leq c\_2\leq\cdots\leq c\_k\geq c\_{k+1}\geq\cdots\geq c\_N를 만족하면 옷장이 아름답다고 생각한다.

하지만 옷장을 아름다운 상태로 정리하는 것은 꽤 귀찮다. 그래서 태인이는 옷장에서 최대 MM개의 옷을 제거해 남은 옷들을 거의 아름다운 상태로 만들기로 했다.

최대 MM개의 옷을 제거한 후, 남은 옷들의 개수를 LL, 왼쪽에서 jj번째 옷의 색을 d_jd\_j라 하자. 태인이는 인접한 두 옷의 색의 차가 xx 이하라면 두 옷을 같은 색으로 인식하기로 했다. 즉, 다음을 만족하는 정수 kk (1≤k≤L1\le k\le L)가 존재한다면 옷장이 거의 아름다운 상태라고 한다.

  • 1≤j\<k1\leq j\<k인 모든 정수 jj에 대해 d_j−d_j+1≤xd\_j-d\_{j+1}\leq x.
  • k≤j\<Lk\leq j\<L인 모든 정수 jj에 대해 d_j+1−d_j≤xd\_{j+1}-d\_j\leq x.

MM개 이하의 옷을 제거해 옷장을 거의 아름다운 상태로 만들 수 있는 가장 작은 음이 아닌 정수 xx의 값을 구하자.

입력

첫 번째 줄에 두 정수 NN과 MM이 주어진다.

두 번째 줄에 NN개의 정수 c_1,c_2,…,c_Nc\_1,c\_2,\ldots ,c\_N가 공백을 사이에 두고 주어진다.

출력

옷장을 거의 아름다운 상태로 만들 수 있는 가장 작은 xx (x≥0x\ge 0)의 값을 출력한다.

제한

  • 1≤N≤1051\leq N\leq 10^5
  • 0≤M≤N0\leq M\leq N
  • 1≤c_i≤1091\leq c\_i\leq 10^9 (1≤i≤N1\leq i\leq N)

힌트

x=2x=2일 때, 왼쪽에서 5번째 옷과 9번째 옷을 제거하면 옷장은 거의 아름다운 상태가 된다. 이보다 더 작은 xx로는 옷장을 거의 아름다운 상태로 만들 수 없다.

예제1

  1. 예제 1

    입력
    10 2
    4 2 7 15 3 11 12 10 2 6
    
    예상 출력
    2