답안 #344720

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
344720 2021-01-06T10:38:32 Z l3nl3 은행 (IZhO14_bank) C++14
71 / 100
1000 ms 512 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>  

#define exit exit(false)

//#define here() cerr << "herewego\n";
#define show(x) cerr << #x << ": " << x << '\n';

#define int long long
//#define double long double

#define all(a) a.begin(), a.end()
#define whole(a, p, q) a+p, a+p+q

#define ioio() ios_base::sync_with_stdio (0); cin.tie (0); cout.tie (0);

using namespace std;

//using namespace __gnu_pbds;   
//typedef tree <int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;  

const int sz = 50;

int a[sz], b[sz], n, m;
bool w[sz];
map <int, int> mp;

bool solve (int pos) {
	if (pos == n + 1) {
		return 1;
	}
	if (a[pos] == 0) {
		return solve(pos + 1);
	}
	for (int i = a[pos]; i >= 1; i--) {
		if (mp[i]) {
			a[pos] -= i;
			mp[i]--;
			if (solve(pos)) {
				return 1;
			}
			a[pos] += i;
			mp[i]++;
		}
	}
	return 0;
}

signed main () { ioio();
//	freopen("bank.in", "r", stdin);
//	freopen("bank.out", "w", stdout);
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	for (int i = 1; i <= m; i++) {
		cin >> b[i];
		mp[b[i]]++;
	}	
	if (n == 1) {
		int x = a[1];
		for (int ma = 1; ma <= (1 << m); ma++) {
			int sm = 0;
			for (int i = 0; i < m; i++) {
				if ((1 << i) & ma) {
					sm += b[i+1];
				}
			}
			if (sm == x) {
				cout << "YES";
				exit;
			}
		}
		cout << "NO";
		exit;	
	}
	if (solve(1)) {
		cout << "YES";
	} else {
		cout << "NO";
	}
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 512 KB Output is correct
3 Correct 0 ms 364 KB Output is correct
4 Correct 0 ms 364 KB Output is correct
5 Correct 66 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 0 ms 364 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Correct 66 ms 492 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 0 ms 364 KB Output is correct
7 Correct 0 ms 364 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Correct 20 ms 384 KB Output is correct
10 Correct 1 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 2 ms 364 KB Output is correct
7 Correct 273 ms 364 KB Output is correct
8 Correct 667 ms 384 KB Output is correct
9 Correct 1 ms 364 KB Output is correct
10 Correct 1 ms 364 KB Output is correct
11 Correct 0 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 512 KB Output is correct
3 Correct 0 ms 364 KB Output is correct
4 Correct 0 ms 364 KB Output is correct
5 Correct 66 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 0 ms 364 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Correct 66 ms 492 KB Output is correct
10 Correct 0 ms 364 KB Output is correct
11 Correct 1 ms 364 KB Output is correct
12 Correct 1 ms 364 KB Output is correct
13 Correct 1 ms 364 KB Output is correct
14 Correct 1 ms 364 KB Output is correct
15 Correct 0 ms 364 KB Output is correct
16 Correct 0 ms 364 KB Output is correct
17 Correct 1 ms 364 KB Output is correct
18 Correct 20 ms 384 KB Output is correct
19 Correct 1 ms 364 KB Output is correct
20 Correct 1 ms 364 KB Output is correct
21 Correct 1 ms 364 KB Output is correct
22 Correct 1 ms 364 KB Output is correct
23 Correct 1 ms 364 KB Output is correct
24 Correct 1 ms 364 KB Output is correct
25 Correct 2 ms 364 KB Output is correct
26 Correct 273 ms 364 KB Output is correct
27 Correct 667 ms 384 KB Output is correct
28 Correct 1 ms 364 KB Output is correct
29 Correct 1 ms 364 KB Output is correct
30 Correct 0 ms 364 KB Output is correct
31 Correct 1 ms 384 KB Output is correct
32 Correct 1 ms 364 KB Output is correct
33 Correct 58 ms 364 KB Output is correct
34 Correct 2 ms 364 KB Output is correct
35 Correct 612 ms 492 KB Output is correct
36 Correct 1 ms 364 KB Output is correct
37 Correct 209 ms 492 KB Output is correct
38 Correct 1 ms 364 KB Output is correct
39 Correct 1 ms 364 KB Output is correct
40 Correct 4 ms 492 KB Output is correct
41 Correct 3 ms 364 KB Output is correct
42 Execution timed out 1088 ms 364 KB Time limit exceeded
43 Halted 0 ms 0 KB -