Submission #1134366

#TimeUsernameProblemLanguageResultExecution timeMemory
1134366Muhammet은행 (IZhO14_bank)C++17
19 / 100
79 ms1092 KiB
#include "bits/stdc++.h"

using namespace std;

#define ll long long int
#define SZ(s) (int)s.size()
#define ff first
#define ss second

const int N = 2e4 + 5;

int n, m;

vector <int> a, b, p;

unordered_map <int,bool> mp, mp1;

int main(){
	ios::sync_with_stdio(false); cin.tie(0);

	cin >> n >> m;
	a.resize(n+1), b.resize(m+1), p.resize(n+1, 0);
	for(int i = 1; i <= n; i++){
		cin >> a[i];
		p[i] = p[i-1] + a[i];
	}
	for(int i = 1; i <= m; i++){
		cin >> b[i];
	}
	vector <vector <int>> dp(n+1, vector <int> (N+1,0));
	for(int i = 0; i < N; i++){
		dp[0][i] = true;
	}
	for(int i = 0; i < (1<<m); i++){
		int x = 0;
		for(int j = 0; j < m; j++){
			if((i>>j) & 1) x += b[j+1];
		}
		for(int j = 1; j <= n; j++){
			if(x == p[j] and dp[j-1][x] == true) dp[j][x] = true;
		}
	}
	for(int i = 0; i < N; i++){
		if(dp[n][i] == true){
			cout << "YES";
			return 0;
		}
	}
	cout << "NO";
	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...