再次印证了不开long long见祖宗
P1102 A-B 数对 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <iostream>
#include <map>
using namespace std;
int n, c;
map<int, int> h;
long long ans;
int main()
{
cin >> n >> c;
for(int i = 1; i <= n; i ++ )
{
int x;
cin >> x;
h[x] ++;
}
//双指针,枚举,考察stl迭代器的使用,迭代器本质上是个指针变量 用->取值
for(auto i = h.begin(); i != h.end(); i ++ )
{
if(h.find(i->first + c) != h.end())
{
ans += (long long)i->second * h.find(i->first + c)->second;
}
}
cout << ans;
// for(auto i : h)
// {
// cout << i.first << ':' << i.second << endl;
// }
return 0;
}