제출 #654307

#제출 시각아이디문제언어결과실행 시간메모리
654307megargayuA Huge Tower (CEOI10_tower)C++17
85 / 100
15 ms512 KiB
// https://oj.uz/problem/view/CEOI10_tower

#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define MOD ((ll)1e9 + 9)
#define MAX_N 70

vector<int> a(MAX_N);

// TODO

int main()
{
  int N, D;
  cin >> N >> D;

  for (int i = 0; i < N; ++i)
    cin >> a[i];

  sort(a.begin(), a.begin() + N);

  // products of factorials of all valid "subproblems"

  ll ans = 1;
  int j = 0;
  for (int i = 0; i < N; ++i)
  {
    while (j < N - 1 && a[j + 1] - a[i] <= D) ++j;
    ans = (ans * static_cast<ll>(j - i + 1)) % MOD;
  }

  cout << ans << '\n';

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