제출 #1277850

#제출 시각아이디문제언어결과실행 시간메모리
1277850alahunovahmad은행 (IZhO14_bank)C++20
71 / 100
535 ms327680 KiB
#include<bits/stdc++.h>
#define int  long long
using namespace std;
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int n, m;
	cin >> n >> m;
	int a[n], b[m];
	for (int i = 0; i < n; i++) cin >> a[i];
	for (int i = 0; i < m; i++) cin >> b[i];
	
	vector<vector<int>> sum(1001);
	for (int p = 0; p < (1<<m); p++) {
		int s = 0;
		for (int i = 0; i < m; i++) {
			if ((p>>i)&1) s += b[i];
		}
		if (s <= 1000)
			sum[s].push_back(p);
	}
	
	vector<int> yes, yes2;
	yes.push_back(0);
	for (int i = 0; i < n; i++) {
		for (int p : yes) {
			for (int q : sum[a[i]]) {
				if (!(p & q)) {
					yes2.push_back(p | q);
				}
			}
		}
		yes = yes2;
		if (yes.empty()) break;
		yes2.clear();
	}
	if (yes.empty()) cout << "NO\n";
	else cout << "YES\n";
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...