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 NK (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 2
1 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 0
1 -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

Không có ý kiến tại thời điểm này.