二分查找做的
#include <iostream>
#include <algorithm>
using namespace std;
int a[1000010], b[1000010];
int main()
{
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
b[i] = a[i];
}
sort(a + 1, a + n + 1);
sort(b + 1, b + n + 1);
int ans = 0;
for (int x = -1000; x <= 1000; x++)
{
int cnt1 = (upper_bound(a + 1, a + n + 1, x) - a) - (lower_bound(a + 1, a + n + 1, x) - a);
int cnt2 = (upper_bound(b + 1, b + n + 1, x - k) - b) - (lower_bound(b + 1, b + n + 1, x - k) - b);
ans += cnt1 * cnt2;
}
cout << ans << endl;
return 0;
}