Để tăng cường kỹ năng lập trình cũng như rèn luyện tư duy thuật toán nhằm chuẩn bị cho kỳ thi Olympic Tin học sắp tới, bạn An quyết định tham gia trang Web làm bài tập trực tuyến trên mạng. Trang Web luyện tập lập trình này mỗi ngày đều tổ chức một kỳ thi và sẽ chấm điểm trực tuyến ngay sau khi kết thúc thời gian làm bài. Vì tiêu chí chấm điểm dựa vào nhiều yếu tố nên điểm số bài thi có thể là một số âm.
Hiện tại, bạn An đã tham gia luyện tập được n ngày, mỗi ngày bạn An đều nghiêm túc làm bài với kết quả ngày thứ i bạn An đạt được số điểm là ai. Theo kinh nghiệm của các anh chị khóa trước, muôn đạt giải trong kỳ thi Olympic Tin học thì mỗi ngày đều phải tham gia kỳ thi trực tuyến sao cho tống điểm đạt được tối thiếu là k, ngoài ra nếu đạt tổng số điểm tối thiểu là k trong số ngày liên tiếp càng ít thì khả năng đạt giải càng cao.
Yêu cầu: Hãy tìm số ngày liện tiếp ít nhất (có thể một ngày) trong số n ngày mà bạn An đã tham gia kỳ thi trực tuyến sao cho tổng số điểm đạt được trong những ngày này tối thiểu là k.
Dữ liệu vào: Cho từ tệp văn bản LUYENTAP.INP có dạng:
Dòng thứ nhất ghi hai số nguyên n, k (1 ≤ n ≤ 50000, 0 < k ≤ 10^9)
Dòng thứ hai ghi n số nguyên a1, a2, ..., an (-10^6 ≤ ai ≤ 10^6, i = 1..n).
Các số trên cùng một dòng ghi cách nhau một dấu cách.
Kết quả: Ghi ra tệp văn bản LUYENTAP.OUT gồm một dòng ghi duy nhất một số nguyện là số ngày liên tiếp ít nhất mà tổng số điểm đạt được tối thiếu là k. Nếu không có số ngày liên tiếp nào đạt tổng điểm tối thiểu là k thì ghi ra số -1
Ví dụ
Input 01:
6 10
3 -4 5 7 1 4
Output 01:
2
Input 02:
5 15
2 3 -1 6 4
Output 02:
-1
Bình luận