#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
using namespace std;
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, d; cin >> n >> d;
vector<int> blocks(n);
for (int &i: blocks) cin >> i;
sort(blocks.begin(), blocks.end());
vector<int> canPlace(n, 0);
int cur = n - 1;
for (int i = n - 1; i >= 0; --i) {
while (cur >= 0 && blocks[i] - blocks[cur] <= d) --cur;
canPlace[i] = n - cur - 2;
}
vector<int> res(n, 1);
for (int i = 1; i < n; ++i) res[i] = (res[i - 1] * (i - n + canPlace[i] + 2)) % 1'000'000'009;
// for (int &i : canPlace) cout << i << ' ';
// cout << '\n';
// for (int &i : res) cout << i << ' ';
// cout << '\n';
cout << res.back() << '\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... |