제출 #1332006

#제출 시각아이디문제언어결과실행 시간메모리
1332006timeforclockA Huge Tower (CEOI10_tower)C++20
90 / 100
1096 ms9868 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

const ll MOD = (ll)(1e9 + 9);

int main() {
	ll N, d; cin >> N >> d;
    vector<ll> a(N);
    for (ll i = 0; i < N; i++) cin >> a[i];
    sort(a.begin(), a.end());
    vector<ll> dp(N); dp[0] = 1;

    for (ll i = 1; i < N; i++) {
        ll r = i;
        while (r >= 1 && a[i]-a[r-1] <= d) r--;
        dp[i] = (dp[i-1]*(i-r+1)) % MOD;
    }

    cout << dp.back();
}
#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...