페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#8197
서브태스크

피아노 1s 1024MB

문제

컴소 최고의 피아니스트 예원이는 오른손만으로도 모든 곡을 연주할 수 있다. 비결은 손을 최대한 조금 움직이는 것이다.

예원이가 연주하는 피아노에는 200\, 000개의 흰 건반만 있으며, 가장 왼쪽 건반부터 순서대로 1, 2, \cdots, 200\, 000까지의 번호가 차례대로 매겨져 있다. 예원이의 손 길이는 흰 건반 K개만큼이며, 다음에 치려는 건반이 손 안에 있다면 손을 움직이지 않고 다음 음을 낼 수 있다. 예를 들어, 손 길이가 건반 5개만큼이고 오른손 엄지를 1번 건반에 두었다면 1번 건반부터 5번 건반까지는 손을 움직이지 않고 칠 수 있지만, 이 범위를 벗어나는 건반을 누르려면 손을 다른 위치로 옮겨야 한다.

다음 곡을 연주하려면 N개의 흰 건반을 순서대로 눌러야 한다. 예원이는 원하는 위치에 손을 두고 연주를 시작하며, 연주 중 필요할 때만 손을 옮길 것이다. 하지만 예원이는 수많은 과제에 시달리느라 악보를 분석할 시간이 없다. 바쁜 예원이 대신 곡을 연주하기 위해 손을 옮겨야 하는 최소 횟수를 구하는 프로그램을 작성해 주자!


입력

첫째 줄에 두 정수 N, K가 공백으로 구분되어 주어진다. (1\le N\le 200\, 000; 1\le K\le 1\, 000)

둘째 줄에는 눌러야 하는 건반의 번호 a_1, a_2, \cdots, a_N이 공백으로 구분되어 주어진다. 이는 i번째로 누르는 건반이 a_i번 건반이라는 의미이다. (1\le a_i\le 200\, 000)


출력

첫째 줄에 손을 옮겨야 하는 최소 횟수를 출력한다.


부분문제

번호 점수 조건
#120점

N \le 1\ 000

#230점

a_i \le 1\ 000 (1 \le i \le N)

#350점

추가 제약 조건 없음


예제 #1

8 5
3 5 4 9 12 5 7 9
2

처음에 엄지를 1번 건반에 둔 뒤 네 번째 음을 치기 전에 9번 건반으로 옮기고, 여섯 번째 음을 치기 전에 5번 건반으로 옮기면 2번만 움직여 연주할 수 있다.


예제 #2

5 1000
1000 1999 1001 1998 1000
0

예제 #3

9 3
9 8 7 6 5 4 3 2 1
2

처음에 엄지를 7번에 둔 뒤 4번, 1번 순으로 적절히 옮기면 2번만 움직여 연주할 수 있다.



출처

제11회 한양대학교 프로그래밍 경시대회(HCPC) Beginner Division I번
로그인해야 코드를 작성할 수 있어요.