Điểm:
200 (p)
Thời gian:
1.0s
Bộ nhớ:
1023M
Input:
bàn phím
Output:
màn hình
Bạn được cho một dãy số \(a\) gồm \(n\) số nguyên. Nhiệm vụ của bạn là tìm số cặp số \((i,j) \ 1 \leq i \leq j \leq n\) sao cho \(a_i + a_{i+1} + ... + a_j = 0\)
Input
- Dòng đầu tiên chứa số nguyên dương \(n \ (1 \leq n \leq 10^5)\) - là số phần tử của mảng.
- Dòng thứ hai chứa \(n\) số nguyên, số thứ \(i\) là \(a_i\) \(( \mid a_i\mid \leq 10^9)\)
Output
- Số lượng cặp số \((i,j)\) thõa mãn điều kiện trên
Example
Test 1
Input
4
-3 3 -4 4
Output
3
Bình luận
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
Mình nghĩ bài này map sẽ không dùng được vì các \(|a[i]|\sim 1e9\)
map + set hình như vẫn ổn mà nhỉ??
\(std::map\) chơi được mà anh
đpt phải là \(O(n \log n)\) chứ anh