Submission #961587

# Submission time Handle Problem Language Result Execution time Memory
961587 2024-04-12T08:37:04 Z blacktulip Bank (IZhO14_bank) C++17
0 / 100
90 ms 172780 KB
#include<bits/stdc++.h>
 
using namespace std;
 
#define int long long
#define pb push_back
#define fi first
#define se second
 
const int li=21;
int n,m,a[li],b[li],dp[li][(1<<20)];

inline int f(int sira,int mask){
	int cevv=0;
	if(sira>n)return 1;
	if(~dp[sira][mask])return dp[sira][mask];
	vector<int> v;
	for(int i=0;i<m;i++){
		if(mask&(1<<i))continue;
		v.pb(i);
	}
	int siz=v.size();
	for(int i=0;i<(1<<siz);i++){
		int sum=0;
		int mask2=0;
		for(int j=0;j<siz;j++){
			if(j&i){
				sum+=b[v[j]];
				mask2|=(1<<v[j]);
			}
		}
		//~ cout<<sum<<" () "<<sira<<" () "<<i<<endl;
		if(sum==a[sira])cevv=max(cevv,f(sira+1,mask|mask2));
	}
	return dp[sira][mask]=cevv;
}

int32_t main(){
	cin>>n>>m;
	memset(dp,-1,sizeof(dp));
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=0;i<m;i++)cin>>b[i];
	int cev=f(1,0);
	if(cev)cout<<"YES\n";
	else cout<<"NO\n";
}
# Verdict Execution time Memory Grader output
1 Correct 90 ms 172628 KB Output is correct
2 Correct 25 ms 172544 KB Output is correct
3 Incorrect 23 ms 172716 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 24 ms 172780 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 22 ms 172732 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 90 ms 172628 KB Output is correct
2 Correct 25 ms 172544 KB Output is correct
3 Incorrect 23 ms 172716 KB Output isn't correct
4 Halted 0 ms 0 KB -