問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
長さ N の数列 A = (A_1, A_2, ... , A_N) が与えられます。
数列 A の部分列であってすべての隣り合う要素の差の絶対値が K 以下であるもののうち、長さが最大であるものの長さを出力してください。
ただし、数列の部分列とは、その数列から順番を変えずに一部の要素を取り出したものを指します。
入力例 1 では、部分列 [9, 12, 8] はすべての隣り合う要素の差の絶対値が 4 以下です。
長さ 4 以上で隣り合う要素の差の絶対値が 4 以下である部分列は存在しないため、3 を出力します。
入力は以下のフォーマットで与えられます。
N K
A_1 A_2 ... A_N
数列 A の部分列であって、すべての隣り合う要素の差の絶対値が K 以下であるもののうち、長さが最大であるものの長さを出力してください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 3000
・1 ≦ K ≦ 10^9
・1 ≦ A_i ≦ 10^9
・A_i ≠ A_j (i ≠ j)
5 4
9 12 1 29 8
3
10 1000000000
836199702 858585251 900394206 501110054 472948995 225543905 653448045 771310909 170671965 903178564
10