#include using namespace std; int main(){ // input int N,D; cin >> N >> D; vector A(N); map> mp; for(int i = 0; i < N; i++){ cin >> A[i]; mp[A[i]].push_back(i); } // solve long long ans = 0; for(int i = 0; i < N; i++){ long long L = lower_bound(mp[A[i]-D].begin(),mp[A[i]-D].end(),i) - mp[A[i]-D].begin(); long long R = mp[A[i]+D].end() - upper_bound(mp[A[i]+D].begin(),mp[A[i]+D].end(),i); ans += L * R; } // output cout << ans << endl; }