Submission #1254423

#TimeUsernameProblemLanguageResultExecution timeMemory
1254423classicA Huge Tower (CEOI10_tower)C++20
100 / 100
78 ms2628 KiB
#include <bits/stdc++.h>

const int MOD = 1E9 + 9;

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);

    int N, D;
    std::cin >> N >> D;

    std::vector<int> a(N);
    for (int i = 0; i < N; i++) {
        std::cin >> a[i];
    }

    sort(a.begin(), a.end());

    int ans = 1;
    for (int i = 0, j = 0; i < N; i++) {
        while (j + 1 < N && a[j + 1] <= a[i] + D) {
            j++;
        }
        ans = (1LL * ans * (j - i + 1)) % MOD;
    }

    std::cout << ans << "\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...