import java.io.*;
import java.util.*;
public class tower {
public static void main(String[] args) throws IOException {
BufferedReader fin = new BufferedReader(new InputStreamReader(System.in));
//BufferedReader fin = new BufferedReader(new FileReader("C:\\Users\\AnshulRaghav\\Desktop\\USACO Problems\\Problems\\test.in"));
PrintWriter fout = new PrintWriter(System.out);
StringTokenizer st = new StringTokenizer(fin.readLine());
int n = Integer.parseInt(st.nextToken());
int d = Integer.parseInt(st.nextToken());
ArrayList<Integer> nums = new ArrayList<>();
st = new StringTokenizer(fin.readLine());
for (int i=0; i<n; i++) {
nums.add(Integer.parseInt(st.nextToken()));
}
Collections.sort(nums);
//fout.println(nums);
long ans = 1;
for (int i=1; i<n; i++) {
if (nums.get(i)-d <= nums.get(0)) {
ans *= i+1;
continue;
}
int low = 0;
int high = i-1;
while (low < high) {
int mid = (low+high+1)/2;
if (nums.get(i)-d > nums.get(mid)) {
low = mid;
}
else {
high = mid-1;
}
}
ans *= i-low;
ans %= 1000000009;
}
fout.println(ans);
fin.close();
fout.close();
}
}
# | 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... |