제출 #1193332

#제출 시각아이디문제언어결과실행 시간메모리
1193332badge881은행 (IZhO14_bank)C++20
100 / 100
136 ms4540 KiB
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;

int n,m;
int a[21],b[20];
int dp[1<<20];

int main(){
	ios_base::sync_with_stdio(false);cin.tie(NULL);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		a[i]+=a[i-1];
	}
	for(int i=0;i<m;i++)
		cin>>b[i];
	
	for(int i=0;i<(1<<m);i++){
		if(dp[i]==n){
			cout<<"YES"<<endl;
			return 0;
		}
		int sum=0;
		for(int j=0;j<m;j++)
			if((1<<j)&i)
				sum+=b[j];
		for(int j=0;j<m;j++){
			if(i&(1<<j))continue;
			if(a[dp[i]+1]==sum+b[j])dp[i|(1<<j)]=dp[i]+1;
			else dp[i|(1<<j)]=max(dp[i|(1<<j)],dp[i]);
		}
	}
	cout<<"NO"<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...