Submission #321271

# Submission time Handle Problem Language Result Execution time Memory
321271 2020-11-11T19:39:04 Z xyzyzl A Huge Tower (CEOI10_tower) C++14
100 / 100
307 ms 17892 KB
#include <bits/stdc++.h>

#define MOD 1000000009
#define ll long long
using namespace std;

int n, d, a[1000005];
ll w[1000005], tot[1000005];
int main()
{
	cin >> n >> d; for(int i = 0; i < n; i++) cin >> a[i];
	sort(a, a+n);
	tot[0] = 1;
	int lo=0;
	for(int i = 0; i < n; i++)
	{
		while(a[lo]+d < a[i]) lo++;
		w[i] = (i-lo)+1;
	}
	// for(int i = 0; i < n; i++) cerr << w[i] << endl;
	for(int i = 1; i < n; i++)
	{
		tot[i] = (tot[i-1]*w[i]) % MOD;
	}
	cout << tot[n-1] << endl;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 1280 KB Output is correct
2 Correct 26 ms 1252 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 129 ms 5220 KB Output is correct
2 Correct 128 ms 5200 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 301 ms 14564 KB Output is correct
2 Correct 307 ms 17892 KB Output is correct