제출 #1222614

#제출 시각아이디문제언어결과실행 시간메모리
1222614jakeob77A Huge Tower (CEOI10_tower)C++20
100 / 100
185 ms3292 KiB
	#include <algorithm>
#include <iostream>
#include <vector>

const int MOD = 1e9 + 9;

int main() {
	int n, d;
	std::cin >> n >> d;
	std::vector<int> blocks(n);
	for (int i = 0; i < n; i++) { std::cin >> blocks[i]; }

	sort(blocks.begin(), blocks.end());  // sort the blocks

	int right = 0;
	int res = 1;
	for (int left = 0; left < n; left++) {
		while (right < n - 1 && blocks[right + 1] - blocks[left] <= d) { right++; }
		// lblocksgest tower we can built when blocks[left] block is the base
		int dist = right - left + 1;
		res = (res * 1LL * dist) % MOD;
	}

	std::cout << res << '\n';
}
#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...