题目描述
给出一串数以及一个数字 CC,要求计算出所有 A - B = C
的数对的个数(不同位置的数字一样的数对算不同的数对)。
样例
输入
4 1
1 1 2 3
输出
1
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
//学习map映射的使用
#include <iostream>
#include <map>
using namespace std;
typedef long long L;
L a[200001];
map<L, L> m; //建立一个数字到出现次数的映射 map<num,times>
//A-B=C --> A-C=B
int main()
{
int n;
L c;
L ans = 0;
cin >> n >> c;
for (int i = 1; i <= n; i++) {
cin >> a[i];
m[a[i]]++;
a[i] -= c;
}
for (int i = 1; i <= n; i++) ans += m[a[i]];
cout << ans << endl;
return 0;
}