Submission #762688

# Submission time Handle Problem Language Result Execution time Memory
762688 2023-06-21T16:25:17 Z BlancaHM A Huge Tower (CEOI10_tower) C++14
100 / 100
221 ms 7960 KB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long int ll;

int mod = 1e9+9;

int N, D;
vector<int> tamanosBloques;

int main() {
	cin >> N >> D;
	tamanosBloques = vector<int>(N);
	for (int i = 0; i < N; i++) {
		cin >> tamanosBloques[i];
	}
	sort(tamanosBloques.begin(), tamanosBloques.end());
	int DP[N], posiblesSegundos[N];
	int puntero = N-1;
	for (int i = N-1; i >= 0; i--) {
		while (puntero >= 0 && tamanosBloques[i] <= tamanosBloques[puntero]+D) {
			puntero--;
		}
		posiblesSegundos[i] = i-puntero-1;
	}
	DP[0] = 1;
	for (int i = 1; i < N; i++) {
	    DP[i] = (DP[i-1]*1ll*(posiblesSegundos[i]+1))%mod;
	}
	cout << DP[N-1] << endl;
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 17 ms 872 KB Output is correct
2 Correct 18 ms 1248 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 97 ms 3184 KB Output is correct
2 Correct 93 ms 3704 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 216 ms 7452 KB Output is correct
2 Correct 221 ms 7960 KB Output is correct