#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD = 1'000'000'009; // Proper constant declaration
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll n, d;
cin >> n >> d;
vector<ll> arr(n);
for (auto &ref : arr) cin >> ref;
sort(arr.begin(), arr.end());
ll ans = 1; // Start with first block
for (int i = 1; i < n; i++) {
ll curr_width = arr[i];
// Find the first block with width >= curr_width - d
ll start = lower_bound(arr.begin(), arr.begin() + i, curr_width - d) - arr.begin();
ll k = i - start; // number of blocks the new block can be placed above
ans = (ans + (ans * k) % MOD) % MOD;
}
cout << ans << '\n';
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... |
# | 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... |