func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 500002;   long long a[maxn];   int n, k, d;   void enter() {     cin >> n >> k >> d;     for (int i = (1), _b = (n + 1); i < _b; ++i) cin >> a[i];   }   int seg[4 * maxn];   void update(int l, int r, int st, int q) {     if (l == r)       seg[st] = 1;     else {       int mid = (l + r) >> 1;       if (mid >= q)         update(l, mid, st * 2, q);       else         update(mid + 1, r, st * 2 + 1, q);       seg[st] = max(seg[st * 2], seg[st * 2 + 1]);     }   }   int _get(int l, int r, int u, int v, int st) {     if (u <= l && r <= v)       return seg[st];     else if (l > v || r < u)       return 0;     else {       int mid = (l + r) >> 1;       return max(_get(l, mid, u, v, st * 2), _get(mid + 1, r, u, v, st * 2 + 1));     }   }   void solve() {     sort(a + 1, a + n + 1);     update(0, n, 1, 0);     for (int i = (1), _b = (n + 1); i < _b; ++i) {       int pos = lower_bound(a + 1, a + n + 1, a[i] - d) - a;       if (pos <= i - k + 1) {         if (_get(0, n, pos - 1, i - k, 1) == 1) {           if (i == n) {             cout <<  YES ;             exit(0);           } else             update(0, n, 1, i);         }       }     }     cout <<  NO ;   }   int main() {     enter();     solve();   }   