using namespace std;
typedef long long LL;
int main(int argc, char **argv)
{
LL N, C, x = 0, n, mid, MID;
cin >> N >> C;
LL s[N];
for (LL i = 0; i < N; i++)
{
cin >> s[i];
}
sort(s, s + N);
for (LL i = 0; i < N; i++)
{
n = s[i] + C;
int l = 0, r = N - 1;
while (l < r)
{
mid = (l + r) / 2;
if (s[mid] >= n)
r = mid;
if (s[mid] < n)
l = mid + 1;
}
int k = 0, p = N - 1;
while (k < p)
{
MID = ceil((k + p) * 1.0 / 2);
if (s[MID] <= n)
k = MID;
if (s[MID] > n)
p = MID - 1;
}
if (s[k] == n)
k++; // 实际为最后数字在的位置,为满足upper_bound要求,都要再加一
x += (k - l);
}
cout << x;
return 0;
}```