Kho báu dưới lòng đất
Xem dưới dạng PDF
Gửi bài giải
Điểm:
2
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Kiểu bài tập
An đang đào hầm tìm kho báu. Trên đường đi, An có một dãy \(n\) hầm chứa vàng, mỗi hầm \(a_i\) lượng vàng. An muốn tìm một đoạn hầm liên tiếp có tổng lượng vàng bằng đúng \(K\).
Nếu có, in ra độ dài ngắn nhất của đoạn đó. Nếu không, in ra \(-1\).
Gợi ý: Dùng prefix sum kết hợp HashMap (đếm số lần xuất hiện của prefix sum).
Input
Dòng đầu chứa \(n\) và \(K\) (\(1 \le n \le 2 \cdot 10^5\), \(-10^9 \le K \le 10^9\)). Dòng hai chứa \(n\) số \(a_i\) (\(-10^9 \le a_i \le 10^9\)).
Output
In ra độ dài ngắn nhất của đoạn con có tổng bằng \(K\), hoặc \(-1\).
Example
6 5
1 2 3 -2 5 1
Output:
2
Giải thích: Đoạn \([2,3]\) có tổng \(2+3=5\), độ dài \(2\).
Nhận xét