답안 #866462

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
866462 2023-10-26T08:12:55 Z MisterReaper A Huge Tower (CEOI10_tower) C++17
20 / 100
965 ms 173000 KB
//author: Ahmet Alp Orakci
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;

const int MOD = 1E9 + 7;

int dp[20][1 << 20];
int arr[20];

#define ONLINE_JUDGE
void solve() {
	memset(dp, -1, sizeof(dp));
	
	int n, d;
	cin >> n >> d;
	for(int i = 0; i < n; i++)
		cin >> arr[i];

	function <int(int, int)> f = [&](int last, int mask) -> int {
		if(mask == (1 << n) -1)
			return 1;
		
		if(dp[last][mask] != -1)
			return dp[last][mask];

		int res = 0;
		for(int i = 0; i < n; i++) {
			if(!(mask & (1 << i)) && arr[i] <= d + arr[last]) {
				(res += f(i, mask | (1 << i))) %= MOD;
			}
		}

		return dp[last][mask] = res;
	};

	int res = 0;
	for(int i = 0; i < n; i++) {
		(res += f(i, (1 << i))) %= MOD;
	}

	cout << res;
	
	return;
}

signed main() {
	#ifndef ONLINE_JUDGE
		freopen(".in", "r", stdin);
		freopen(".out", "w", stdout);
	#endif

	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

	int t = 1; //cin >> t;
	for(int i = 1; i <= t; i++) {
		solve();
	}

	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 82520 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 82524 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 82524 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 82520 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 36 ms 82336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 135 ms 82520 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 965 ms 82520 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 31 ms 82524 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 92 ms 82524 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 72 ms 166872 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 71 ms 166932 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 77 ms 166764 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 71 ms 166928 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 73 ms 166856 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 89 ms 166992 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 71 ms 167016 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 72 ms 167052 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 78 ms 167248 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 90 ms 169212 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 119 ms 173000 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -