Submission #850877

# Submission time Handle Problem Language Result Execution time Memory
850877 2023-09-17T15:54:01 Z tvladm2009 A Huge Tower (CEOI10_tower) C++17
100 / 100
93 ms 11464 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int M = (int) 1e9 + 9;
int n;
int d;

int mul(int a, int b) {
  return a * (ll)b % M;
}

int main() {
  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

  cin >> n >> d;
  vector<int> v;
  for (int i = 1; i <= n; i++) {
    int x;
    cin >> x;
    v.push_back(x);
  }
  sort(v.begin(), v.end());
  int j = (int) v.size() - 1;
  int ret = 1;
  for (int i = (int) v.size() - 2; i >= 0; i--) {
    while (v[i] + d < v[j]) {
      j--;
    }
    ret = mul(ret, j - i + 1);
  }
  cout << ret << "\n";
  return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 600 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 1264 KB Output is correct
2 Correct 7 ms 1244 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 45 ms 3788 KB Output is correct
2 Correct 40 ms 4300 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 81 ms 11464 KB Output is correct
2 Correct 93 ms 10692 KB Output is correct