답안 #713052

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
713052 2023-03-21T02:03:35 Z Narka A Huge Tower (CEOI10_tower) C++14
90 / 100
1000 ms 16076 KB
# include<bits/stdc++.h>
using namespace std ;
# define F first
# define S second
# define int long long
# define in insert
# define pb push_back
# define pob pop_back
# define INF INT_MAX
# define INFL 1e18 + 10
# define mod 1000000009	
# define vi vector<int>
# define pii pair<int , int>
# define vvi vector< vector<int> >
# define vpi vector<pair<int, int>> 
# define all(v) v.begin() , v.end()
# define debug(x) cerr << '\n' << #x << " = " << x << '\n' ;
# define rep( i , s , e ) for( int i = s ; i <= e ; i++ )
# define repR( i , e , s ) for( int i = e ; i >= s ; i-- )
# define trav(a) for(auto& x : a)
# define bk back()
# define FAST ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
# define endl "\n"
# define vva2 vector<vector<array<int, 2>>>

void solve(){
	int n, d;
	cin >> n >> d;
	vi a(n), ans(n);
	for(auto& x : a) cin >> x;
	sort(all(a));
	ans[0] = 1;
	rep(i, 1, n-1){
		int cnt = 1, j = i-1;
		while(j >= 0 && a[j] >= a[i] - d){
			cnt++;
			j--;
		}
		ans[i] = (ans[i-1] * 1LL * cnt) % mod;
	}
	cout << ans[n-1] << endl;

}

signed main() {	
	FAST
	solve();
	return 0;
} 
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 324 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 320 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 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 328 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 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 316 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 320 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 316 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 324 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 21 ms 580 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 27 ms 1612 KB Output is correct
2 Correct 471 ms 1604 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 212 ms 6684 KB Output is correct
2 Execution timed out 1066 ms 6608 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1018 ms 16076 KB Time limit exceeded
2 Halted 0 ms 0 KB -