제출 #1334963

#제출 시각아이디문제언어결과실행 시간메모리
1334963sh_qaxxorov_571A Huge Tower (CEOI10_tower)C++20
100 / 100
214 ms5260 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

typedef long long ll;
const ll MOD = 1000000009; // Diqqat: Masalada 10^9 + 9 berilgan

int main() {
    int N;
    ll D;
    if (!(cin >> N >> D)) return 0;

    vector<ll> s(N);
    for (int i = 0; i < N; i++) {
        cin >> s[i];
    }

    // 1. Bloklarni saralaymiz
    sort(s.begin(), s.end());

    ll ans = 1;
    int j = 0;

    // 2. Har bir blok uchun mumkin bo'lgan o'rinlarni hisoblaymiz
    for (int i = 0; i < N; i++) {
        // s[i] dan s[j] ayirmasi D dan katta bo'lmaguncha j ni suramiz
        while (j < i && s[i] - s[j] > D) {
            j++;
        }
        
        // i - j + 1: bu s[i] bloki minoraning necha xil pozitsiyasida bo'lishi mumkinligi
        ans = (ans * (i - j + 1)) % MOD;
    }

    cout << ans << endl;

    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...