피아노

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

요약
누를 건반 N개와 손이 닿는 범위 K가 주어질 때, 손을 옮겨야 하는 최소 횟수를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 그리디, 투 포인터
정답자
아직 제출이 없습니다

문제

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

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

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

입력

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

둘째 줄에는 눌러야 하는 건반의 번호 a_1a\_1, a_2a\_2, ⋯\cdots, a_Na\_N이 공백으로 구분되어 주어진다. 이는 ii번째로 누르는 건반이 a_ia\_i번 건반이라는 의미이다. (1≤a_i≤200,000)(1\le a\_i\le 200\\, 000)

출력

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

예제3

  1. 예제 1

    입력
    8 5
    3 5 4 9 12 5 7 9
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5 1000
    1000 1999 1001 1998 1000
    
    예상 출력
    0
    
  3. 예제 3

    입력
    9 3
    9 8 7 6 5 4 3 2 1
    
    예상 출력
    2