Điểm:
1500 (p)
Thời gian:
1.0s
Bộ nhớ:
977M
Input:
bàn phím
Output:
màn hình
Cho dãy số \(A\) gồm \(n\) phần tử nguyên dương \(A_1,A_2,…,A_n\). Mỗi phần tử có giá trị không vượt quá \(10^9\) và \(n≤ 10^5\). Một cặp số được gọi là cặp tương đồng với \(x\), nếu cặp số này có tổng bằng số \(x\) cho trước nào đó.
Yêu cầu: Hãy đếm xem trong dãy số \(A\) có bao nhiêu cặp số (\(A_i;A_j\)) tương đồng với \(x\) (có nghĩa là \(A_i+ A_j=x\)) với \(i<j\).
Input
- Dòng đầu tiên chứa dãy số \(n,x\) (\(n≤10^5,x≤10^6\)).
- Dòng thứ 2 chứa \(n\) phần tử của dãy số \(A\) (\(A_i≤10^9\)).
Output
- Ghi ra một số nguyên là cặp đôi tương đồng của dãy số.
Example
Test 1
Input
7 6
1 2 4 3 4 5 3
Output
4
Bình luận
include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, k, x;
cin >> n >> k;
map <int, int> a;
int c = 0;
for (int i = 0; i < n; ++i) {
cin >> x;
c += a[k - x];
++a[x];
}
cout << c;
return 0;
}
16 bình luận nữa