Dãy con dài nhất 2

Xem dạng PDF

Gửi bài giải

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

Tác giả:
Người đăng:
Dạng bài
Ngôn ngữ cho phép
C++, Python

Cho hai số nguyên dương ~N, K~ (~1 ≤ N ≤ 10^5, 1 ≤ K ≤ 10^9~) và dãy gồm ~N~ số nguyên dương ~a_1,a_2,…,a_N~.

Yêu cầu: Tìm số nguyên dương ~L~ là độ dài lớn nhất, sao cho tất cả các dãy con gồm các phần tử liên tiếp kề nhau có độ dài ~L~, thuộc dãy số đã cho đều có tổng các phần tử bé hơn hoặc bằng ~K~.

Dữ liệu:

Đọc từ bàn phím theo cấu trúc sau:

  • Dòng thứ nhất gồm hai số nguyên dương ~N~ và ~K~;
  • Dòng thứ hai chứa ~N~ số nguyên dương ~a_1,a_2,…,a_N~ (~0 < a_i ≤ 10^5~, ~1 ≤ i ≤ N~);
  • Các số trên một dòng cách nhau một khoảng trắng.

Dữ liệu ra:

Xuất ra màn hình một số nguyên dương ~L~ là độ dài của dãy con dài nhất thỏa mãn yêu cầu bài toán, nếu không có dãy con nào thỏa mãn yêu cầu thì xuất ra màn hình số -1.

Ví dụ đầu vào:

5 10
1 2 3 4 5

Đầu ra:

2

Giải thích: ~N~ = 5, ~K~ = 10, dãy {1; 2; 3; 4; 5} có các dãy con liên tiếp kề nhau có độ dài ~L~ = 2 là {1; 2}, {2; 3}, {3; 4}, {4; 5} đều có tổng các phần tử bé hơn ~K~, các dãy con liên tiếp kề nhau có độ dài ~L~ = 3 là {1; 2; 3}, {2; 3; 4}, {3; 4; 5} trong đó có dãy con {3; 4; 5} có tổng các phần tử lớn hơn ~K~ nên ~L~ = 3 không thỏa mãn yêu cầu bài toán, vậy ~L~ = 2 thỏa mãn yêu cầu bài toán.

Ràng buộc:

  • 30% số điểm của bài ứng với các bộ dữ liệu vào có giới hạn ~1 ≤ N ≤ 10^2~ ;
  • 30% số điểm của bài ứng với các bộ dữ liệu vào có giới hạn ~10^2 < N ≤ 10^3~ ;
  • 40% số điểm của bài ứng với các bộ dữ liệu vào có giới hạn ~10^3 < N ≤ 10^5~ .

Bình luận

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


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