Submission #866474

# Submission time Handle Problem Language Result Execution time Memory
866474 2023-10-26T08:28:31 Z MisterReaper A Huge Tower (CEOI10_tower) C++17
100 / 100
93 ms 8104 KB
//author: Ahmet Alp Orakci
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;

const int MOD = 1E9 + 9;

#define ONLINE_JUDGE
void solve() {
	int n, d;
	cin >> n >> d;

	int arr[n];
	for(int i = 0; i < n; i++)
		cin >> arr[i];

	sort(arr, arr + n);

	int res = 1, r = 0;
	for(int l = 0; l < n; l++) {
		while(r +1 < n && arr[l] + d >= arr[r +1])
			r++;

		//cerr << l << " " << r << "\n";
		res = (res * 1LL * (r - l +1)) % MOD;
	}

	cout << res;
	
	return;
}

signed main() {
	#ifndef ONLINE_JUDGE
		freopen(".in", "r", stdin);
		freopen(".out", "w", stdout);
	#endif

	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

	int t = 1; //cin >> t;
	for(int i = 1; i <= t; i++) {
		solve();
	}

	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 500 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 452 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 592 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 1116 KB Output is correct
2 Correct 7 ms 976 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 38 ms 2900 KB Output is correct
2 Correct 40 ms 3668 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 85 ms 6188 KB Output is correct
2 Correct 93 ms 8104 KB Output is correct