Treasure Subarray
Xem dưới dạng PDF
Gửi bài giải
Điểm:
6
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
64M
đầu vào:
TREASURE.INP
Đầu ra:
TREASURE.OUT
Tác giả:
Kiểu bài tập
Thám tử An đang truy tìm một kho báu bị nguyền rủa. Trên bản đồ kho báu có một dãy gồm N ô vuông, mỗi ô ghi một số nguyên (có thể âm). Truyền thuyết kể rằng: tổng giá trị của một đoạn ô liên tiếp đúng bằng con số K thì phía dưới đoạn ô đó có chứa một phần của kho báu.
An muốn biết có bao nhiêu đoạn ô liên tiếp (khác nhau về vị trí bắt đầu hoặc kết thúc) có tổng đúng bằng K, để lập kế hoạch đào bới toàn diện.
Yêu cầu
Cho dãy N số nguyên a_1, a_2, ..., a_N. Hãy đếm số cặp (l, r) với 1 ≤ l ≤ r ≤ N sao cho tổng a_l + a_{l+1} + ... + a_r = K.
Dữ liệu vào
Đọc từ file TREASURE.INP:
- Dòng thứ nhất chứa hai số nguyên N và K (1 ≤ N ≤ 2 × 10^5; −10^9 ≤ K ≤ 10^9).
- Dòng thứ hai chứa N số nguyên a_1, a_2, ..., a_N (−10^9 ≤ a_i ≤ 10^9), mỗi số cách nhau bởi dấu cách.
Dữ liệu ra
Ghi ra file TREASURE.OUT:
- Một số nguyên duy nhất là số đoạn con có tổng bằng K.
Ví dụ
Ví dụ 1:
| TREASURE.INP | TREASURE.OUT |
|---|---|
5 21 1 1 1 1 |
4 |
Giải thích: Các đoạn [1,2], [2,3], [3,4], [4,5].
Ví dụ 2:
| TREASURE.INP | TREASURE.OUT |
|---|---|
4 01 -1 1 -1 |
4 |
Giải thích: Các đoạn [1,2], [2,3], [3,4], [1,4].
Subtask
- Subtask 1 (40% số điểm): 1 ≤ N ≤ 10^3, các số đều không âm.
- Subtask 2 (60% số điểm): 1 ≤ N ≤ 2 × 10^5, có thể có số âm.
Nhận xét