Dãy con dài nhất có tổng không lớn hơn S

Xem PDF

Điểm: 5 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

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 \(\leq\) i \(\leq\) j \(\leq\) N tổng của dãy con liên tiếp \(a_i\), \(a_{i+1}\), .., \(a_j\) độ dài của dãy con liên tiếp \(a_i\), \(a_{i+1}\), .., \(a_j\) 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 từ tệp văn bản LONGEST.INP gồm:

  • Dòng 1: ghi 2 số nguyên N và S (N \(\leq\) \(10^6\), S \(\leq\) \(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\) \(\leq\) \(10^6\) , i = 1..N)

Kết quả:

ghi ra tệp văn bản LONGEST.OUT 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ụ:
LONGEST.INP
8 7
6 8 2 4 5 1 9 3
LONGEST.OUT
2

Giới hạn:

  • Có 10/25 test có n \(\leq\) 100 tương ứng 2 điểm;
  • Có 10/25 test có 100 < n \(\leq\) 1000 tương ứng 2 điểm;
  • Có 5/25 test có 1000 < N \(\leq\) \(10^6\), \(a_i\) > 0, i = 1..N tương ứng 1 điểm.

Bình luận

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