trang chủ / đề bài / db_ts10_26_c

Dãy con tăng dài nhất

Đề bài

Mô tả

Dãy con tăng dài nhất của dãy a1,a2,…,an là dãy chỉ số 1≤p1<p2<…<pk≤n (trong đó k là số nguyên lớn nhất) sao cho ap1<ap2<…<apk.

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 a1,a2,…,an và một số nguyên d (−x≤d≤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ớn nhất là bao nhiêu.

Yêu cầu: Hãy viết chương trình giúp An tính độ dài lớn nhất có thể của dãy con tăng dài nhất sau phép biến đổi.

Dữ liệu vào

  • Dòng đầu gồm hai số nguyên n và x (1≤n≤200000; 0≤x≤109) 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 a1,a2,…,an (1≤ai≤109).

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.

Ràng buộc

  • 1≤n≤200000.
  • 0≤x≤109.
  • 1≤ai≤109.

Subtasks

  • Subtask 1 (30% số điểm): n≤1000.
  • Subtask 2 (40% số điểm): x=0.
  • Subtask 3 (30% số điểm): Không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
8 10
7 3 5 12 2 7 3 4
5 Tăng đoạn a5..a8 lên d=10: dãy thành 7,3,5,12,12,17,13,14, có dãy con tăng 3,5,12,13,14 độ dài 5.
6 6
5 6 7 1 2 3
5 (Ví dụ bổ sung.) Tăng đoạn a4..a6 lên d=6: dãy thành 5,6,7,7,8,9, có dãy con tăng 5,6,7,8,9 (dùng số 7 ở vị trí 4).

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0