폭탄 터트리기

NYPC 2021 · 예선

다오는 폭탄 터트리기 게임을 하려고 한다. 게임에서는 폭탄 NN 개가 좌우로 한줄로 주어진다. 왼쪽에서 ii 번째 폭탄은 자연수 값 AiA_i를 가진다.

<그림 1> 6개 폭탄 예시
<그림 1> 6개 폭탄 예시

값이 XX인 폭탄을 클릭하면 그 폭탄과, 폭탄에 연속적으로 인접하면서 값이 XX 이상 X+KX+K 이하인 것들이 모두 터진다. 예를 들어, 위 그림에서 K=3K=3이라고 하고, 왼쪽에서 세 번째 폭탄을 터트린 경우 아래와 같은 상황이 된다.

<그림 2> 폭탄이 터진 후 예시
<그림 2> 폭탄이 터진 후 예시

위 그림 처럼 폭탄이 터진 자리는 그대로 남아 있어서, 처음에 인접하지 않았던 폭탄의 쌍은 그 이후에도 인접하지 않다.

폭탄을 클릭하는 횟수가 많을수록 점수가 줄어들어서, 다오는 폭탄을 최소 횟수로 클릭해서 게임을 해결하고 싶다.

주어진 폭탄들과 KK의 값을 입력으로 받아 최소 클릭 횟수를 계산하는 프로그램을 작성하라.

입력 형식

첫 줄에 폭탄의 개수를 나타내는 정수 NN과 폭탄의 범위를 나타내는 정수 KK가 공백으로 구분되어 주어진다. (1N300000;1 \le N \le 300\,000; 0K10000000000 \le K \le 1\,000\,000\,000)

둘째 줄에 NN 개의 정수 A1A_{1}, \cdots, ANA_{N}이 공백으로 구분되어 주어진다. (1Ai10000000001 \le A_{i} \le 1\,000\,000\,000)

출력 형식

최소의 선택 횟수를 출력한다.

예제

입력

5 3 1 3 2 5 4

출력

2

예제 설명

제일 왼쪽의 값이 11인 폭탄을 클릭하면 왼쪽 33 개의 폭탄이 터진다. 그 다음 값이 55인 폭탄을 클릭하면 하나만 터진다. 마지막으로 남은 폭탄을 클릭하면 33 번의 클릭으로 해결이 된다.

하지만, 세 번째의 값이 22인 폭탄을 클릭하면 제일 왼쪽의 폭탄을 제외한 모든 폭탄이 터진다. 마지막으로 제일 왼쪽의 폭탄을 클릭하면 게임이 해결된다.

따라서 답은 22이다.

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 11

K=0K = 0

종류 2: 36

N100N \le 100

종류 3: 53

추가적인 제한 조건이 없음.

해설