Submission #1350993

#TimeUsernameProblemLanguageResultExecution timeMemory
1350993WarinchaiA Huge Tower (CEOI10_tower)C++20
100 / 100
93 ms17572 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;

int md=1e9+9;

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,d;cin>>n>>d;
    vector<int>v;
    for(int i=1;i<=n;i++){
        int x;cin>>x;
        v.push_back(x);
    }
    sort(v.begin(),v.end());
    vector<int>temp;
    int ans=1;
    for(int i=0;i<v.size();i++){
        int id=lower_bound(temp.begin(),temp.end(),v[i]-d)-temp.begin();
        int can=(int)temp.size()+1-id;
        //cerr<<"can:"<<can<<"\n";
        ans=(ans*can)%md;
        temp.push_back(v[i]);
    }
    cout<<ans;
}
#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...