답안 #434127

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
434127 2021-06-20T15:23:00 Z dhakiptk A Huge Tower (CEOI10_tower) C++17
100 / 100
160 ms 8744 KB
// https://oj.uz/problem/view/CEOI10_tower
#include <bits/stdc++.h>
// Common file
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp> 

using namespace __gnu_pbds;
using namespace std;


using ll = long long;
using pi = pair<int, int>;
using ti = tuple<int, int, int>;
using tl = tuple<ll, ll, ll>;
using pil = pair<int, ll>;
using pli = pair<ll, int>;
using pl = pair<ll, ll>;
using vi = vector<int>;
using vl =  vector<ll>;
using vpi = vector<pi>;
using vpil = vector<pil>;
using vpli = vector<pli>;
using vpl = vector<pl>;
using vti = vector<ti>;
using vtl = vector<tl>;
using vvi = vector<vi>;
using vvl = vector<vl>;
using vvpi = vector<vpi>;
using vvpil = vector<vpil>;
using vvpli = vector<vpli>;
using vvpl = vector<vpl>;
using vvti = vector<vti>;
using vvtl = vector<vtl>;

using oset =  tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>;

using omset =  tree<pair<int,int>, null_type, less<pair<int, int>>, rb_tree_tag, tree_order_statistics_node_update>;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

const int INF = INT_MAX;
const ll LINF = LLONG_MAX;
const int MOD = 1000000000 + 9;

#define setbits(n) __builtin_popcount(n)
#define len(x) (int)size(x)

void setIO(string name = "") {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	if (len(name)) {
		ignore = freopen((name + ".in").c_str(), "r", stdin);
		ignore = freopen((name + ".out").c_str(), "w", stdout);
	}
}

int main() {
	setIO();
	int n, d;
	cin >> n >> d;
	vi v(n);
	for (int i = 0; i < n; i++) {
		cin >> v[i];
	}
	sort(v.begin(), v.end());
	ll ans = 1;
	for (int i = 1; i < n; i++) {
		auto dist = (v.begin() + i) - (lower_bound(v.begin(), v.begin() + i, v[i] - d)) + 1;
		ans = ans * dist;
		ans %= 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 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 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 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 956 KB Output is correct
2 Correct 11 ms 972 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 65 ms 3640 KB Output is correct
2 Correct 57 ms 3704 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 126 ms 8744 KB Output is correct
2 Correct 160 ms 8136 KB Output is correct