This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
int n,m,i,j,l,suma,sumb,x;
int main(){
	cin >> n >> m;
	vector<int> a(n);
	vector<int> b(m);
	for(i=0;i<n;i++) cin >> a[i],suma+=a[i];
	for(i=0;i<m;i++) cin >> b[i],sumb+=b[i];
	if(suma>sumb || a.size()>b.size()){
		cout << "NO";
		return 0;
	}
	sort(a.rbegin(),a.rend());
	sort(b.rbegin(),b.rend());
	for(i=0;i<n;i++){
		for(j=0;j<m;j++){
			if(a[i]==b[j]){
				a[i]=0;
				b[j]=0;
			}
		}
	}
	//for(i=0;i<n;i++) cout << a[i] << " ";
	for(i=0;i<n;i++){
		x=a[i];
		bool ok=0;
		for(j=0;j<(1<<m);j++){
			int sum=0;
			for(l=0;l<m;l++){
				if(j&(1<<l)) sum+=b[l];
			}
			if(sum==x){
				ok=1;
				for(l=0;l<m;l++){
					if(j&(1<<l)) b[l]=0;
				}
				break;
			}
		}
		if(!ok){
			cout << "NO";
			return 0;
		}
	}
	cout << "YES";
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |