Submission #1277845

#TimeUsernameProblemLanguageResultExecution timeMemory
1277845alahunovahmadBank (IZhO14_bank)C++20
71 / 100
1095 ms9848 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];
	
	int sum[1<<m] = {0};
	for (int p = 0; p < (1<<m); p++) {
		for (int i = 0; i < m; i++) {
			if ((p>>i)&1) sum[p] += b[i];
		}
	}
	
	vector<int> yes, yes2;
	yes.push_back(0);
	for (int i = 0; i < n; i++) {
		for (int p : yes) {
			for (int q = 0; q < (1 << m); q++) {
				if (!(p & q)) {
					if (sum[q] == a[i]) {
						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...