Dãy con liên tiếp dài nhất có tổng không vượt quá S

Xem dạng PDF

Gửi bài giải

Điểm: 12,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho dãy số ~a~ có ~N~ phần từ nguyên ~a_1, a_2,...,a_N~ và một số nguyên ~S~ bất kì. Một dãy con liên tiếp của dãy số a có dạng ~a_i, a_{i+1},...,a_j~ với ~ 1 \le i \le j \le N~ tổng của dãy con liên tiếp bằng ~a_i+ a_{i+1}+...+a_j~, độ dài của dãy con liên tiếp bằng ~j - i +1 ~.

Yêu cầu: Tìm dãy con liên tiếp của dãy số ~a~ có độ dài lớn nhất và có tổng không lớn hơn ~S~?

Dữ liệu vào:

  • Dòng 1: ghi 2 số nguyên ~N~ và ~S~ (~N \le 10^6, S \le 10^9~)
  • Dòng 2: ghi lần lượt các số nguyên không âm ~a_1, a_2,...,a_N~,(~a_i \le 10^6, i = 1..N~).

Dữ liệu ra:

  • Gồm một số duy nhất là độ dài của dãy con liên tiếp dài nhất thoả mãn.

Ví dụ:

Input:

8 7
6 8 2 4 5 1 9 3

Output:

2

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    cuong2682010  đã bình luận lúc 22, Tháng 10, 2024, 13:12


  • 1
    cocomelon  đã bình luận lúc 16, Tháng 1, 2024, 15:16 chỉnh sửa

    cũng có thể áp dùng 2 pointer:()