Submission #656490

#TimeUsernameProblemLanguageResultExecution timeMemory
656490maks007Bank (IZhO14_bank)C++14
19 / 100
1 ms300 KiB
#include "bits/stdc++.h"

using namespace std;

signed main () {
	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 = accumulate(a, a + n, 0);
	int dp[sum + 1];
	memset(dp, 0, sizeof(dp));
	dp[0] = 1;
	for(int i = 0; i < m; i ++) {
		for(int j = sum; j >= 0; j --) {
			if(j-b[i]<0)break;
			dp[j] |= dp[j-b[i]];
		}
	}
	int pref = 0;
	for(int i = 0; i < n; i ++) {
		pref += a[i];
		if(dp[pref]) continue;
		cout << "NO\n";
		return 0;
	}
	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...