#include #include using namespace std; using namespace atcoder; using mint = modint998244353; //using mint = modint1000000007; typedef long long ll; typedef pair P; typedef tuple T; templatebool chmax(T& a, const T& b) { if (a < b) { a = b;return true; } else { return false; } } templatebool chmin(T& a, const T& b) { if (a > b) { a = b;return true; } else { return false; } } template void dbg(Args&&... args) { ((cout << args << ' '), ...);cout << '\n'; } const int di[] = { -1,0,1,0 }; const int dj[] = { 0,-1,0,1 }; const long long INF = 6000000000000000000; const int inf = 1001001001; int main(void) { int n, d; cin >> n >> d; map mpl, mpr; vector a(n, 0); for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { mpr[a[i]]++; } ll ans = 0; for (int i = 0; i < n; i++) { ans += mpl[a[i] - d] * mpr[a[i] + d]; mpl[a[i]]++; mpr[a[i]]--; } cout << ans << "\n"; }