Tí và Tèo rất yêu thích trò chơi với dãy số. Hôm nay, Tí cho Tèo một dãy \(a\) gồm \(n\) số nguyên \(a_1, a_2, ..., a_n\) và một số nguyên \(x\).
Thông thường, việc tìm dãy con tăng dài nhất quá quen thuộc, nên Tí đổi luật chơi:
- Đầu tiên, Tèo chọn hai vị trí \(L\) và \(R\) (\(1 \le L \le R \le n\)) trong dãy \(a\), và một số nguyên \(d\) (\(-x \le d \le x\));
- Sau đó, Tèo cộng \(d\) vào tất cả các phần tử từ \(a[L]\) đến \(a[R]\). Gọi \(l\) là độ dài của dãy con tăng nghiêm ngặt dài nhất sau khi thao tác được thực hiện.
Yêu cầu:
- Hãy lập trình để tìm giá trị \(l\).
Dữ liệu vào:
- Dòng đầu: hai số nguyên \(n\) và \(x\) (\(1 \le n \le 200000\), \(0 \le x \le 10^9\));
- Dòng thứ hai: \(n\) số nguyên \(a_1, a_2, ..., a_n\) (\(1 \le a_i \le 10^9\)).
Kết quả:
- In ra một số nguyên duy nhất: độ dài dãy con tăng dài nhất có thể đạt được sau một lần thao tác như mô tả.
Input 1
9 6
1 2 3 9 6 5 7 8 1
Output 1
7
Giải thích:
- Chọn đoạn \([4, 4]\), \(d = -4\) → dãy sau khi thay đổi: \(1 2 3 5 6 5 7 8 1\)
- Dãy con tăng dài nhất: \(1 2 3 5 6 7 8\) ⇒ \(l = 7\)
Ràng buộc:
- Có 25% số test ứng với \(x = 0\).
- Có 45% số test ứng với \(1 \le n \le 1000\).
- Có 30% số test không có ràng buộc gì thêm.
Nhận xét