[Thanh Hoá -23] Kế hoạch luyện tập
Hè này, Lam xây dựng kế hoạch luyện tập chủ động trên hệ thống lập trình trực tuyến. Hệ thống cung cấp n bài toán. Hai bài toán có nội dung liên quan thì sắp xếp liền kề nhau. Các bài toán có độ khó lần lượt là a_1, a_2, ..., a_n. Lam đặt ra mục tiêu hè phải ôn luyện được một số nội dung nên phải làm được các bài toán liên quan và có tổng độ khó lớn hơn hoặc bằng S.
Do trong hè có nhiều hoạt động khác, Lam cũng muốn mình phải làm ít nhất các bài toán mà vẫn đạt được mục tiêu đề ra.
Yêu cầu: Hãy giúp Lam tính số lượng bài toán ít nhất liên tiếp nhau cần phải làm để đạt tổng độ khó tối thiểu là S.
Dữ liệu vào
Dòng 1 chứa hai số nguyên dương n và S (1 <= n <= 10^7; 1 <= S <= 10^16) Dòng 2 chứa n số nguyên dương a_1, a_2, ..., a_n (1 <= a_i <= 10^9) Các số trên cùng một dòng cách nhau bởi dấu cách.Kết quả
Ghi ra một số nguyên là số lượng bài toán Lam cần làm. Trường hợp không có phương án nào thỏa mãn, ghi ra số -1.Ví dụ
10 18 5 1 3 9 10 7 4 9 2 8
2
Giải thích
Lam chọn làm 2 bài toán liên tiếp là 9 và 10. Tổng độ khó là 9 + 10 = 19 >= 18. Đây là số lượng bài toán ít nhất.Giới hạn
- 25% số điểm: 1 <= n <= 10^2; 1 <= S <= 10^6; a_i <= 10^4
- 25% số điểm: 10^2 < n <= 5x10^3; 1 <= S <= 5x10^9; a_i <= 10^6
- 25% số điểm: 5*10^3 < n <= 10^5; 1 <= S <= 10^14; a_i <= 10^6
- 25% số điểm: 10^5 <= n <= 10^7; 1 <= S <= 10^16; a_i <= 10^9
Comments