답안 #531261

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
531261 2022-02-28T09:36:06 Z hohohaha A Huge Tower (CEOI10_tower) C++14
45 / 100
330 ms 82372 KB
#include<bits/stdc++.h>
using namespace std;
#define fori(i, a, b) for(int i = (int) (a); i <= (int) (b); i++) 
#define ford(i, a, b) for(int i = (int) (a); i >= (int) (b); i--) 
#define ii pair<int, int> 
#define fi first
#define se second
#define vi vector<int> 
#define eb emplace_back
#define sp ' '
#define int long long
const int maxn = 3e6 + 5, mod = 1e9 + 9; 
int n, d; 
int arr[maxn]; 
int dp[1 << 20][20]; 
signed main() { 
//	freopen("tower.inp", "r", stdin); 
//	freopen("tower.out", "w", stdout); 
	ios_base::sync_with_stdio(0); 
	cin.tie(0); 
	cout.tie(0); 
	cin >> n >> d; 
	fori(i, 0, n - 1) cin >> arr[i]; 
	fori(i, 0, n - 1) dp[1 << i][i] = 1; 
	fori(mask, 1, (1 << n) - 1) { 
		fori(last, 0, n - 1) { 
			if(mask >> last & 1) { 
				fori(nxt, 0, n - 1) { 
					if(!(mask >> nxt & 1)) { 
						if(arr[nxt] <= arr[last] + d) { 
							dp[mask ^ (1 << nxt)][nxt] += dp[mask][last]; 
							if(dp[mask ^ (1 << nxt)][nxt] >= mod) dp[mask ^ (1 << nxt)][nxt] -= mod; 
						}
					}
				}
			}
		}
	}
	int ans = 0; 
	fori(last, 0, n - 1) (ans += dp[(1 << n) - 1][last]) %= mod; 
	cout << ans; 
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 972 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 1612 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 5436 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 71 ms 20832 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 330 ms 82372 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 5444 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 82 ms 20908 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 4 ms 588 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 4 ms 588 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 4 ms 580 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 3 ms 588 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 4 ms 568 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 4 ms 588 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 4 ms 604 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 7 ms 856 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 9 ms 1908 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 29 ms 7024 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 66 ms 16432 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -