AcWing 5077. 差分计数
原题链接
简单
作者:
王杜杜
,
2025-01-14 23:38:53
,
所有人可见
,
阅读 3
C++ 代码
#include <iostream>
#include <unordered_map>
#include <unordered_map>
using std::cout;
using std::cin;
using std::endl;
using std::unordered_map;
int main()
{
int n,x;
cin >> n >> x;
unordered_map<int,int> cnt;
int num;
while(n--){
cin >> num;
cnt[num]++; // 记录每个不同的整数分别有多少个
}
// a[i] - a[j] == x
// a[i] - x == a[j]
long long res = 0;
for(auto& [k,v] : cnt){
if(cnt.count(k-x))
res +=(long long)v * cnt[k-x]; // a[i] 有 v 个,a[j]有cnt[k-x]个
// (i,j)的不同组合共v*cnt[k-x]个
}
cout << res << endl;
return 0;
}