답안 #393554

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
393554 2021-04-24T02:44:36 Z aaronhma A Huge Tower (CEOI10_tower) C++17
100 / 100
132 ms 10612 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef vector<ll> vll;

#define all(x) begin(x), end(x)
#define sz(x) (int)x.size()
#define FORE(i, a, b) for (ll i = a; i < b; i++)

const int MOD = 1e9 + 9; // 19^9 + 9 for "CEOI 2010 - A Huge Tower"

// INPUT
template <class T>
void read(T &x) { cin >> x; }

template <class Arg, class... Args>
void read(Arg &first, Args &...rest);
template <class T>
void read(vector<T> &a);

template <class Arg, class... Args>
void read(Arg &first, Args &...rest)
{
  read(first);
  read(rest...);
}

template <class T>
void read(vector<T> &a)
{
  FORE(i, 0, sz(a))
  read(a[i]);
}

int main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);

  ll n, d, ans = 1, j = 0;
  read(n, d);

  vll arr(n);
  read(arr);

  sort(all(arr));

  FORE(i, 0, n) {
    while (j < n && arr[j] - arr[i] <= d)
      j++;

    ans = (ans * (j - i)) % MOD;
  }

  cout << ans << "\n";

  return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 252 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 716 KB Output is correct
2 Correct 10 ms 716 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 53 ms 2252 KB Output is correct
2 Correct 50 ms 2252 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 125 ms 5072 KB Output is correct
2 Correct 132 ms 10612 KB Output is correct