Bài 4: Cộng dãy (TS10 An Giang 2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1200 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Trong một trung tâm nghiên cứu dữ liệu, các nhà khoa học đang theo dõi
sự thay đổi năng lượng của một hệ thống theo thời gian. Mỗi thời điểm,
năng lượng tăng được biểu diễn bằng một số nguyên dương hoặc giảm được
biểu diễn bằng một số nguyên âm hoặc không tăng không giảm được biểu
diễn bằng số \(0\).

Một khoảng thời gian liên tiếp được xem là cân bằng hoàn toàn nếu tổng
mức thay đổi năng lượng trong khoảng thời gian đó bằng \(0\). Nhiệm vụ của
bạn là xác định có bao nhiêu khoảng thời gian cân bằng hoàn toàn xuất
hiện trong dãy dữ liệu.

Cho dãy số nguyên \(A\) gồm \(N\) phần tử: \(A_1, A_2, \dots, A_N\) mỗi phần
tử thể hiện mức năng lượng. Biết rằng, một đoạn con liên tiếp (có ít
nhất một phần tử) của dãy có phần tử đầu \(A_L\), phần tử cuối \(A_R\)
tập hợp các phần tử \(A_i\) (với \(L \le i \le R\)) có tổng mức thay đổi
năng lượng bằng \(0\) gọi là khoảng thời gian cân bằng hoàn toàn.

Yêu cầu: Đếm số đoạn con liên tiếp có tổng giá trị tất cả các phần
tử trong đoạn con bằng \(0\).

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên \(N\) \((1 \le N \le 10^6)\).
  • Dòng thứ hai là dãy số nguyên \(A\) gồm \(N\) phần tử: \(A_1, A_2, \dots, A_N\) \((|A_i| \le 10^9, 1 \le i \le N)\).

Dữ liệu ra

Một số nguyên là số đoạn con liên tiếp có tổng giá trị tất cả các phần tử trong đoạn con bằng \(0\).

Phân nhóm

Subtask Điểm Ràng buộc
1 \(20\%\) \(N \le 10^2\)
2 \(40\%\) \(N \le 10^4\)
3 \(40\%\) Không giới hạn gì thêm

Ví dụ

Ví dụ 1

Input
5
2 1 -1 -2 0
Output
4

Ví dụ 2

Input
4
2 1 1 2
Output
0

Bình luận (1)

Mới nhất
Tải bình luận...

Kỳ thi: