code:
#include<bits/stdc++.h>
using namespace std;
int n,a[200005];
int c,cnt = 0;
int f(int x){//第一次出现x的位置
int ans = 0;
int l = 1,r = n + 1,mid;
while(l <= r){
mid = (l + r) / 2;
if(x <= a[mid]){
if(a[mid] == x) ans = mid;
r = mid - 1;
}else{
l = mid + 1;
}
}
return ans;
}
int g(int x){//最后一次出现x的位置
int ans = 0;
int l = 1,r = n + 1,mid;
while(l <= r){
mid = (l + r) / 2;
if(x >= a[mid]){
if(a[mid] == x) ans = mid;
l = mid + 1;
}else{
r = mid - 1;
}
}
return ans;
}
int main(){
cin >> n >> c;
for(int i = 1;i <= n;i++) cin >> a[i];
sort(a + 1,a + n + 1);
for(int i = 1;i <= n;i++){
int al = a[i];
// cout<<al<<endl;
// cout<<f(al - c)<<" "<<g(al - c);
if(g(al - c) != 0)
cnt += g(al - c) - f(al - c) + 1;
// cout<<" "<<cnt<<endl;
}
cout<<cnt;
return 0;
}