Gửi bài giải

Điểm: 1,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

Cho đ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

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.