Submission #459553

# Submission time Handle Problem Language Result Execution time Memory
459553 2021-08-08T16:02:43 Z erke A Huge Tower (CEOI10_tower) C++11
100 / 100
140 ms 15400 KB
#include <bits/stdc++.h>
using namespace std;

#define int long long

const int N = 1000005;
const int MOD = 1e9 + 9;

int a[N], dp[N];

signed main() {
  cin.tie(0)->sync_with_stdio(0);
  int n, d;
  cin >> n >> d;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  sort(a + 1, a + n + 1, greater<int>());
  dp[0] = 1;
  for (int i = 1, j = 1; i <= n; i++) {
    while (a[j] > a[i] + d) j++;
    dp[i] += (dp[i - 1] * (i - j + 1)) % MOD;
    dp[i] %= MOD;
  }
  cout << dp[n] << '\n';
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 252 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 460 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 1168 KB Output is correct
2 Correct 12 ms 1360 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 59 ms 4436 KB Output is correct
2 Correct 55 ms 4364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 120 ms 10224 KB Output is correct
2 Correct 140 ms 15400 KB Output is correct