Submission #346543

#TimeUsernameProblemLanguageResultExecution timeMemory
346543Ca7Ac1A Huge Tower (CEOI10_tower)C++17
30 / 100
181 ms88300 KiB
#include <iostream> #include <algorithm> #include <vector> #include <set> #include <map> #define ll signed long long using namespace std; const ll MOD = (ll)10e9 + 9; vector<ll> mem(10e6, -1); bool cmpr(ll a, ll b) { return a > b; } ll factorial(ll n) { if (mem[n] == -1) { mem[n] = (n * factorial(n - 1)) % MOD; } return mem[n]; } int main() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); //freopen("tower.in", "r", stdin); mem[0] = 1; mem[1] = 1; ll N; ll D; cin >> N >> D; vector<ll> blocks(N, 0); for (ll i = 0; i < N; i++) { cin >> blocks[i]; } sort(blocks.begin(), blocks.end(), cmpr); vector<ll> possible(N, 1); ll sum = 1; ll j = 0; for (ll i = 0; i < N; i++) { j = max(j, i); sum = 1; while (j < N - 1 && blocks[i] - blocks[j + 1] <= D) { j++; sum *= j - i + 1; sum %= MOD; } possible[i] = sum; } ll sol = 1; for (ll mult : possible) { sol *= mult; sol %= MOD; } cout << sol; }
#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...