Bài 4: Hành trình xe điện (TS10 Quảng Trị 2026)

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: 1700 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: CAU4.INP Output: CAU4.OUT

Để nâng cao hiệu suất vận hành cho một loại xe điện mới, các bạn trong nhóm START UP đã tiến hành thử nghiệm như sau:

Một tuyến đường được chia làm \(N\) chặng đường liên tiếp, khi xe điện chạy ở chặng thứ \(i\) của con đường, xe điện sẽ tiêu thụ một lượng \(a_i\) đơn vị năng lượng (\(a_i > 0\)) hoặc được nạp thêm một lượng \(a_i\) năng lượng nhờ hệ thống tái tạo năng lượng khi đường xuống dốc (\(a_i < 0\)). Một hành trình liên tiếp sẽ xuất phát từ chặng thứ \(i\) và kết thúc tại chặng thứ \(j\) (\(1 \le i \le j \le N\)), khi đó tổng năng lượng trên hành trình đó là: \(a_i + a_{i+1} + a_{i+2} + \dots + a_j\).

Các bạn mong muốn tìm một hành trình liên tiếp dài nhất để thử nghiệm, tuy nhiên để đảm bảo an toàn cho pin và các thiết bị khác trên xe, tổng năng lượng trên một hành trình liên tiếp không được vượt quá giới hạn an toàn \(P\) của pin xe điện.

Cho số nguyên dương \(N\), số nguyên \(P\) và dãy \(N\) số nguyên \(a_1, a_2, \dots, a_N\).

Yêu cầu: Hãy xác định số chặng đường liên tiếp dài nhất sao cho tổng các giá trị năng lượng trên đoạn đó không vượt quá giới hạn an toàn \(P\) của pin.

Input

  • Dòng 1: Chứa hai số nguyên \(N\)\(P\) (\(1 \le N \le 5 \cdot 10^5, P \le 10^9\)).
  • Dòng 2: Chứa \(N\) số nguyên \(a_1, a_2, \dots, a_N\) (\(-10^6 \le a_i \le 10^6\)).
  • Các số trên cùng một dòng được ghi cách nhau bởi một dấu cách.

Output

  • Ghi ra một dòng duy nhất là độ dài lớn nhất của chặng đường liên tiếp theo yêu cầu của bài toán. Biết rằng, dữ liệu đầu vào luôn đảm bảo tìm ra kết quả.

Example

Test 1

Input
5 7
8 2 2 4 1
Output
3
Note

Chặng đường thỏa mãn yêu cầu bài toán là: \(\{2, 4, 1\}\) (tổng bằng \(7 \le 7\), độ dài là \(3\)).

Scoring

  • \(1/3\) số test tương ứng \(1/3\) số điểm của bài với \(N \le 1000, -10^6 \le a_i \le 10^6\).
  • \(1/3\) số test tương ứng \(1/3\) số điểm của bài với \(N \le 10^5, 0 \le a_i \le 10^6\).
  • \(1/3\) số test tương ứng \(1/3\) số điểm của bài với \(N \le 5 \cdot 10^5, -10^6 \le a_i \le 10^6\).

Bình luận (1)

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