만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

K-gap 부분 수열

면접 대비

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

요약
연속한 원소의 차이가 k 이상이 되도록 부분수열을 고를 때, 가장 긴 부분수열의 길이를 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 세그먼트 트리, 정렬
정답자
아직 제출이 없습니다

문제

정수 수열의 부분 수열은 주어진 수열에서 원래 순서를 유지하면서 값들의 일부를 고른 것이다. 정수 수열의 k-gap 부분 수열은 부분 수열에서 연속한 두 원소의 차이가 k 이상인 부분 수열이다. 예를 들어 수열

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

에서 3, 12, 8, 4, 9, 5, 1, 7 (위에서 굵게 표시한 원소)은 4-gap 부분 수열이다. 인접한 원소의 차이가 모두 다음과 같이 4 이상이기 때문이다.

∣3−12∣|3 - 12|, ∣12−8∣|12 - 8|, ∣8−4∣|8 - 4|, ∣4−9∣|4 - 9|, ∣9−5∣|9 - 5|, ∣5−1∣|5 - 1|, ∣1−7∣|1 - 7|은 모두 4 이상이다.

수열과 k의 값이 주어졌을 때, 가장 긴 k-gap 부분 수열의 길이를 구하시오.

입력

첫 줄에는 공백으로 구분된 두 정수 n과 k가 주어진다. n (1≤n≤3000001 \le n \le 300000)은 수열의 길이이고, k (1≤k≤1091 \le k \le 10^9)는 이번 입력에서 사용하는 k의 값이다.

둘째 줄에는 공백으로 구분된 n개의 정수가 주어진다. i번째 정수 aia_i (1≤ai≤1091 \le a_i \le 10^9)는 입력 수열의 i번째 값이다.

출력

입력 수열의 가장 긴 k-gap 부분 수열의 길이를 출력한다.

예제3

  1. 예제 1

    입력
    10 2
    1 2 3 2 1 3 1 3 5 6
    
    예상 출력
    7
    
  2. 예제 2

    입력
    5 12
    3 7 14 20 32
    
    예상 출력
    3
    
  3. 예제 3

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