Submission #1339322

#TimeUsernameProblemLanguageResultExecution timeMemory
1339322_azerA Huge Tower (CEOI10_tower)C++20
100 / 100
219 ms2836 KiB
#include <bits/stdc++.h>
using namespace std;

const int MOD = 1000000009;

int main(int argc, char *argv[]) {
    int n, d;
    cin >> n >> d;

    vector<int> blocks(n);
    for (int i = 0; i < n; ++i) {
        cin >> blocks[i];
    }
    sort(blocks.begin(), blocks.end());

    long long dp = 1, i = 0, j = 1;
    while(j <= n - 1) {
        if(blocks[i] + d >= blocks[j]) {
            dp = (dp * (j - i + 1)) % MOD;
            j++;
        }
        else i++;
    }

    cout << dp << "\n";

    return 0;
}
#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...