#include <bits/stdc++.h>
//#define int long long
using ll = int64_t;
using namespace std;
constexpr int maxn = 2E5;
void orz() {
    ll B, N, D, M;
    cin >> B >> N >> D >> M;
    vector <ll> A(N + 1);
    for(int i = 1; i <= N; ++i) {
        cin >> A[i];
    }
    sort(A.begin() + 1, A.end());
    ll ans = 0;
    for(int i = 1; i <= N; i++) {
        ans += (upper_bound(A.begin(), A.end(), A[i] + D) - A.begin() - 1 - i);
    }
    cout << ans;
}
int32_t main() {
    ios_base::sync_with_stdio(false), cin.tie(nullptr);
    //freopen("promote.in", "r", stdin);
    //freopen("promote.out", "w", stdout);
    int T = 1;
    //cin >> T;
    while(T--) orz();
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |