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
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python
Cho một dãy ~a~ gồm ~n~ số nguyên dương ~a_1, a_2,..., a_n~ và một số nguyên dương ~m~.
Yêu cầu
Hãy tìm số nguyên dương ~L~ nhỏ nhất sao cho tất cả các dãy con gồm ~L~ phần tử liên tiếp của dãy ~a~ đều có tổng lớn hơn hoặc bằng ~m~.
Dữ liệu đầu vào
Gồm hai dòng:
- Dòng thứ nhất chứa hai số nguyên dương ~n~ và ~m~ ~(1 \le n \le 10^6;\ m \le 10^{18})~.
- Dòng tiếp theo chứa ~n~ số nguyên dương ~a_1, a_2, ..., a_n~ ~(1 \le i \le n;\ a_i \le 10^9)~.
Dữ liệu đầu ra
Gồm một số nguyên dương ~L~ nhỏ nhất tìm được thỏa mãn yêu cầu bài toán. Nếu không tìm được giá trị thỏa mãn thì ghi ~-1~.
Ràng buộc dữ liệu
- Có 30% số test ứng với 30% số điểm của bài thỏa mãn: ~a_1 \le a_2 \le ... \le a_n~;
- Có 40% số test khác ứng với 40% số điểm của bài thỏa mãn: ~n \le 10^3~;
- 30% số test còn lại ứng với 30% số điểm của bài không có ràng buộc gì thêm.
Ví dụ
Ví dụ 1
INPUT
5 6
3 2 1 4 5
OUTPUT
3
Ví dụ 2
INPUT
4 16
7 1 2 5
OUTPUT
-1
Bình luận