TS10 Điện Biên 2026 - Dãy con tăng dài nhất

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2100 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Dãy con tăng dài nhất của dãy \(a_1, a_2, \ldots, a_n\) là dãy
\(1 \le p_1 < p_2 < \ldots < p_k \le n\) (trong đó \(k\) là số nguyên lớn
nhất) sao cho \(a_{p_1} < a_{p_2} < \ldots < a_{p_k}\).

Sau khi được học về bài toán dãy con tăng dài nhất, là một học sinh
thông minh, thích khám phá nhiều điều mới lạ nên An đã thay đổi một chút
nội dung của bài toán này. Trước tiên, An chọn một đoạn con liên tiếp
trong dãy \(a_1, a_2, \ldots, a_n\) và một số nguyên \(d\)
(\(-x \le d \le x\)). An thực hiện tăng giá trị các phần tử trong đoạn con
đó lên \(d\) (\(d\) có thể bằng \(0\)). Sau phép biến đổi, độ dài của dãy con
tăng dài nhất sẽ dài hơn và An muốn biết độ dài này là bao nhiêu.

Yêu cầu: Các bạn hãy viết chương trình giúp An nhé!

Dữ liệu vào

  • Dòng đầu gồm hai số nguyên \(n\)\(x\) (\(1 \le n \le 200000; 0 \le x \le 10^9\)) lần lượt là số phần tử của dãy và giới hạn cho giá trị \(d\).
  • Dòng thứ hai gồm \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9, i = 1 \ldots n\)).

Các số trên một dòng được ghi cách nhau bởi dấu cách.

Dữ liệu ra

Một số nguyên duy nhất là độ dài của dãy con tăng dài nhất sau phép biến
đổi.

Phân nhóm

Subtasks Điểm Ràng buộc
1 \(30\%\) \(n \le 1000\)
2 \(40\%\) \(x = 0\)
3 \(30\%\) Không có ràng buộc gì thêm

Ví dụ

Ví dụ 1

Input
8 10
7 3 5 12 2 7 3 4
Output
5

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.