Submission #1251060

#TimeUsernameProblemLanguageResultExecution timeMemory
1251060vpinxA Huge Tower (CEOI10_tower)C++20
100 / 100
120 ms10052 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int MOD = 1e9 + 9;

int mod_mul(int a, int b) {
    int ans = 0;
    a %= MOD;
    
    while (b > 0) {
        if (b & 1) ans = (ans + a) % MOD;
        a = (a * 2) % MOD;
        b >>= 1;
    }
    return ans;
}

int solve() {
    int n, d;
    cin >> n >> d;
    
    vector<int> v(n);
    for (int i = 0; i < n; i++) cin >> v[i];
    sort(v.begin(), v.end());
    
    vector<int> ans(n);
    ans[0] = 1;
    
    int p1 = 0;
    for (int p2 = 1; p2 < n; p2++) {
        while (v[p1] + d < v[p2]) p1++;
        ans[p2] = mod_mul(ans[p2 - 1], p2 - p1 + 1);
    }
    return ans[n - 1];
}

int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    cout << solve();
    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...