E - Smooth Subsequence Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 525

問題文

長さ N の数列 A = (A_1, A_2, \ldots, A_N) が与えられます。

A の部分列であって、隣接する 2 項の差の絶対値が D 以下であるようなものの長さの最大値を求めてください。

ただし、数列 A の部分列とは、A の要素を 0 個以上選んで削除し、残った要素を元の順序を保って並べた数列のことを指します。

制約

  • 1 \leq N \leq 5 \times 10^5
  • 0 \leq D \leq 5 \times 10^5
  • 1 \leq A_i \leq 5 \times 10^5
  • 入力される数値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

N D
A_1 A_2 \ldots A_N

出力

答えを出力せよ。


入力例 1

4 2
3 5 1 2

出力例 1

3

A の部分列 (3, 1, 2) は隣接する 2 項の差の絶対値が 2 以下です。


入力例 2

5 10
10 20 100 110 120

出力例 2

3

入力例 3

11 7
21 10 3 19 28 12 11 3 3 15 16

出力例 3

6

Score: 525 points

Problem Statement

You are given a sequence A = (A_1, A_2, \ldots, A_N) of length N.

Find the maximum length of a subsequence of A such that the absolute difference between any two adjacent terms is at most D.

A subsequence of a sequence A is a sequence that can be obtained by deleting zero or more elements from A and arranging the remaining elements in their original order.

Constraints

  • 1 \leq N \leq 5 \times 10^5
  • 0 \leq D \leq 5 \times 10^5
  • 1 \leq A_i \leq 5 \times 10^5
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N D
A_1 A_2 \ldots A_N

Output

Print the answer.


Sample Input 1

4 2
3 5 1 2

Sample Output 1

3

The subsequence (3, 1, 2) of A has absolute differences of at most 2 between adjacent terms.


Sample Input 2

5 10
10 20 100 110 120

Sample Output 2

3

Sample Input 3

11 7
21 10 3 19 28 12 11 3 3 15 16

Sample Output 3

6