#include #include #include #include using namespace std; using namespace atcoder; using ll = long long; using lb = long double; using P = pair; using T = tuple; using vll = vector; using vb = vector; using vvll = vector>; using vP = vector

; using Graph = vector>; using WGraph = vector>>; // コスト、頂点番号の順 using mint = modint998244353; //using mint = long double; #define rep0(i, n) for (ll i = 0; i < (ll)(n); i++) #define rep1(i, n) for (ll i = 1; i <= (ll)(n); i++) mt19937_64 rng(58); long double PI = 3.14159265358979; const ll LLMAX = 9223372036854775807; const ll INF = 1e18; vector di = {-1, 0, 1, 0}; // 上左下右 vector dj = {0, -1, 0, 1}; template inline bool chmax(T &a, T b) { return ((a < b) ? (a = b, true) : (false)); } template inline bool chmin(T &a, T b) { return ((a > b) ? (a = b, true) : (false)); } int main() { ll n, d; cin >> n >> d; vll a(n); rep0 (i, n) cin >> a[i]; map mp; ll ans = 0; rep0 (i, a.size()) { mp[a[i]]++; ans += mp[a[i] - d] * mp[a[i] - 2 * d]; } cout << ans << endl; return 0; }