Điểm:
200 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho dãy số \(A\) có \(N\) số nguyên. Hãy đếm số cặp \((i,j)\) sao cho \(A_i + A_j = 0\), với \(i < j\).
Input
- Dòng đầu tiên chứa một số nguyên dương \(N\) \((1 \leq N \leq 2*10^5)\)
- Dòng thứ hai chứa dãy số \(A\) gồm \(N\) số nguyên cách nhau bởi một ký tự khoảng trống. \((|A_i| \leq 10^9)\)
Output
- In ra một số nguyên duy nhất, là số cặp phần tử trong dãy \(A\) mà có tổng là 0.
Scoring
- Subtask \(1\) (\(25\%\) số điểm): \(N \leq 10^4\), \(|A_i| \leq 10^6\).
- Subtask \(2\) (\(60\%\) số điểm): \(N \leq 2*10^5\), \(|A_i| \leq 10^6\).
- Subtask \(3\) (\(100\%\) số điểm): \(N \leq 2*10^5\), \(|A_i| \leq 10^9\).
Example
Test 1
Input
3
-2 0 2
Output
1
Note
Chỉ tồn tại một cặp phần tử \((1, 3)\) tương ứng với \(A_1 + A_3 = -2 + 2 = 0\).
Test 2
Input
6
-2 -1 0 0 1 2
Output
3
Bình luận
Ngôn ngữ zì zậy :V
hình như là pascal
if(a[i]=(-a[j]))then dem:=dem+1;
dùng đếm pp đi ❤️
em làm j mà chặt nhị phân đồ phức tạp thế