#include<bits/stdc++.h>
#define int long long
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
inline int read(){
int num=0,sign=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
sign=-sign;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
num=num*10+(int)ch-48;
ch=getchar();
}
return num*sign;
}
inline void write(int num){
if(num<0){
putchar('-');
num=-num;
}
if(num>9)
write(num/10);
putchar(num%10+'0');
}
const int MOD=1e9+9;
int n,d;
int ans=1;
int a[1000009];
signed main(){
n=read(); d=read();
for(int i=1;i<=n;i++)
a[i]=read();
sort(a+1,a+n+1);
int curl=1;
for(int curr=1;curr<=n;curr++){
while(curl<=curr&&a[curl]+d<a[curr])
curl++;
ans=ans*(curr-curl+1)%MOD;
}
write(ans);
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... |