Bài 3. Dãy con tăng dài nhất (Chọn ĐTQG - Khánh Hòa 2025)

Xem dưới dạng PDF

Gửi bài giải

Điểm: 30
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 695M

Tác giả:
Kiểu bài tập

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

Không có ý kiến tại thời điểm này.