Submission #1288508

#TimeUsernameProblemLanguageResultExecution timeMemory
1288508darekzhangA Huge Tower (CEOI10_tower)C++20
100 / 100
219 ms2840 KiB
#include <bits/stdc++.h>

using namespace std;
const long long MOD = 1000000009;

int main() {
	int n,d;
	cin >> n >> d;
	vector<int> blocks (n);
	for (int i = 0; i < n; i++)
		cin >> blocks[i];
	sort(blocks.begin(), blocks.end());
	long long previous_towers = 1;
	int l = 0;
	for (int r = 1; r < n; r++) {
		while (blocks[l] < blocks[r]-d)
			l++;
		previous_towers = ((long long)(r-l+1)*(previous_towers))%MOD;
	}
	cout << previous_towers << "\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...