Dãy Con Phẳng
Xem dạng PDFPer được cho một dãy số ~A_1, A_2, \ldots, A_n~ và một số nguyên ~k~.
Hãy tìm độ dài lớn nhất của một dãy ~B~ thỏa mãn cả hai điều kiện sau:
- ~B~ là một dãy con của ~A~ (không nhất thiết gồm các phần tử liên tiếp).
- Với mỗi cặp phần tử kề nhau trong ~B~, trị tuyệt đối của hiệu hai phần tử đó không vượt quá ~k~.
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên ~n~ và ~k~.
- ~n~ dòng tiếp theo, dòng thứ ~i~ chứa số nguyên ~A_i~.
Kết quả
In ra một số nguyên duy nhất — độ dài lớn nhất của dãy ~B~.
Ví dụ
Đầu vào:
10 3
1
5
4
3
8
6
9
7
2
4
Đầu ra:
7
Giải thích: Chọn ~B = (1, 4, 3, 6, 9, 7, 4)~. Đây là dãy con của ~A~, và mọi hiệu giữa hai phần tử kề nhau ~(|1-4|, |4-3|, |3-6|, |6-9|, |9-7|, |7-4|)~ đều không vượt quá ~k = 3~.
Giới hạn
- ~1 \le n \le 3 \cdot 10^5~
- ~0 \le A_i \le 3 \cdot 10^5~
- ~0 \le k \le 3 \cdot 10^5~
Gọi ~f_v~ là độ dài dãy ~B~ dài nhất kết thúc bằng một phần tử có giá trị ~v~. Duyệt ~i~ từ trái sang phải, ta cần ~f_{A_i} = 1 + \max f_v~ với ~v~ chạy trong đoạn ~[A_i - k, A_i + k]~ — đúng một truy vấn lấy ~\max~ trên đoạn và một phép cập nhật tại một điểm.
Bình luận