Submission #1296424

#TimeUsernameProblemLanguageResultExecution timeMemory
1296424Gadir_2880A Huge Tower (CEOI10_tower)C++20
100 / 100
104 ms5328 KiB
//The Rumbling starts here:
 
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
//#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
 
#include<bits/stdc++.h>
using namespace std;
#define debug(n,m) cout<<"["<<#n<<"]->"<<n<<m
#define int long long
#define all(x) x.begin(),x.end() 
#define ai array<int,2>
#define pb push_back
 
const int N=2e5+5;
const int mod=1e9+9;
const int inf=4e18;

int a[N];

void levi() {
  int n,x;
  cin>>n>>x;
  vector<int> p(n+1,0);
  for (int i=1;i<=n;++i) cin>>p[i];
  sort(all(p));
  int res=1;
  for (int i=1;i<=n;++i) {
    int j=upper_bound(all(p),p[i]+x)-p.begin()-1;
    res*=(j-i+1);
    res%=mod;
  }
  cout<<res<<'\n';
}

int32_t main() {
  // freopen("sleepy.in","r",stdin);
  // freopen("sleepy.out","w",stdout);
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int tt=1;
  #ifdef tests
  cin>>tt;
  #endif
  while(tt--) levi();
}


/*

*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...