답안 #762689

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
762689 2023-06-21T16:25:24 Z a_aguilo A Huge Tower (CEOI10_tower) C++14
100 / 100
101 ms 14748 KB
#include<bits/stdc++.h>

using namespace std;

int N, D;
int MOD = 1e9 + 9;

int main(){
	ios_base::sync_with_stdio(false);
    cin.tie(NULL);
	
	cin >> N >> D;
	long long a[N];
	long long b[N];
	for(int i = 0; i < N; ++i) cin >> a[i];
	sort(a, a + N);
	int left = 0; int right = 0;
	for(int i = 0; i < N; ++i){
		while(right < N and a[right] >= a[i]-D)right++;
		while(a[left] < a[i]-D) left++;
		b[i] = (right-left)%MOD;
	}
	long long dp[N];
	dp[0] = 1;
	for(int i = 1; i < N; ++i){
		dp[i] = (dp[i-1]*(b[i] + 1 - (N - i)))%MOD;
		//cout << b[i] << " " << dp[i] << endl;
	}
	cout << dp[N-1] << endl;
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 468 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 1364 KB Output is correct
2 Correct 8 ms 1492 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 6144 KB Output is correct
2 Correct 38 ms 6132 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 89 ms 14736 KB Output is correct
2 Correct 101 ms 14748 KB Output is correct