Xe tăng
Xem dạng PDFCho đoạn đường từ ~A~ đến ~B~ được chia thành ~n~ đoạn nhỏ liên tiếp, đoạn thứ ~i~ có độ cứng ~a_i~.
Một xe tăng có chiều dài ~L~ và khối lượng ~M~ có thể đi qua đoạn đường này nếu tại mọi thời điểm, toàn bộ xe tăng luôn nằm trên một đoạn con liên tiếp gồm ~L~ đoạn nhỏ và tổng độ cứng của đoạn con đó không nhỏ hơn ~M~. Tương đương, mọi đoạn con liên tiếp độ dài ~L~ của dãy ~a~ đều có tổng lớn hơn hoặc bằng ~M~.
Biết ~M~ và dãy độ cứng ~a~, hãy tìm chiều dài nhỏ nhất ~L~ để xe tăng đi qua được toàn bộ đoạn đường.
Yêu cầu
Tìm giá trị nhỏ nhất của ~L~ sao cho mọi đoạn con liên tiếp độ dài ~L~ của dãy ~a~ đều có tổng lớn hơn hoặc bằng ~M~.
Dữ liệu
Dữ liệu vào từ ~stdin~ gồm:
- Dòng đầu chứa hai số nguyên ~M~ và ~n~.
- Dòng thứ hai chứa ~n~ số nguyên dương ~a_1, a_2, \dots, a_n~.
Dữ liệu đảm bảo tổng của toàn bộ dãy ~a~ lớn hơn hoặc bằng ~M~.
Kết quả
Ghi ra ~stdout~ một số nguyên duy nhất là chiều dài nhỏ nhất ~L~ cần tìm.
Ví dụ
Ví dụ 1
Input
6 5
3 2 1 4 5
Output
3
Giải thích
Ví dụ 1
- Với ~L = 2~, các đoạn con độ dài ~2~ có tổng lần lượt là ~5, 3, 5, 9~, không phải tất cả đều lớn hơn hoặc bằng ~6~.
- Với ~L = 3~, các đoạn con độ dài ~3~ có tổng lần lượt là ~6, 7, 10~, đều thỏa mãn.
Vì vậy đáp án là ~3~.
Ràng buộc và chấm điểm
Ràng buộc
- ~1 \le n \le 10^5~
- ~1 \le a_i, M \le 10^9~
Chấm điểm
- Subtask ~1~ ~(50\%):~ ~1 \le n \le 10^3~
- Subtask ~2~ ~(50\%):~ ~10^3 < n \le 10^5~
Bình luận