Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập chentongkhong

Chèn số tránh tổng bằng 0

Dễ Hashing (hàm băm)Tham lamMảng cộng dồn (Prefix Sum)

  • 100 Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 50% Tỉ lệ AC
  • 1 Số AC

Neko rất sợ số \(0\). Neko có dãy \(n\) số nguyên khác \(0\): \(a_1, a_2, \dots, a_n\) (có thể âm hoặc dương). Neko muốn dãy không có bất kỳ đoạn con liên tiếp nào (gồm ít nhất một phần tử) có tổng bằng \(0\).

Neko được phép chèn thêm các số nguyên bất kỳ (giá trị tùy chọn, có thể là \(0\) hoặc số rất lớn) vào các vị trí bất kỳ của dãy (đầu dãy, cuối dãy hoặc giữa hai phần tử). Hãy tìm số lượng số cần chèn ít nhất để dãy thu được không còn đoạn con liên tiếp nào có tổng bằng \(0\).

Input

  • Dòng đầu tiên chứa số nguyên \(n\).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\).

Output

In ra một số nguyên là số lượng số cần chèn ít nhất.

Constraints

  • \(1 \le n \le 10^5\)
  • \(1 \le |a_i| \le 10^3\)
  • Tổng của tất cả các phần tử của dãy có giá trị tuyệt đối không quá \(2 \times 10^6\).

Sample Input 1

8
2 -1 -1 3 -3 4 -4 5

Sample Output 1

3

Sample Input 2

1
-1000

Sample Output 2

0

Explanation

Ví dụ 1: các đoạn có tổng \(0\) là \((2, -1, -1)\), \((3, -3)\) và \((4, -4)\); cần chèn một số vào mỗi chỗ để phá các đoạn này, tối thiểu \(3\) số (ví dụ chèn một số rất lớn vào ngay trước \(-1\) thứ hai, trước \(-3\) và trước \(-4\)).

Bình luận

Chưa có bình luận nào.