Submission #1261756

#TimeUsernameProblemLanguageResultExecution timeMemory
1261756islam_2010Bank (IZhO14_bank)C++20
44 / 100
78 ms328 KiB

#include <bits/stdc++.h>
#define int long long
using namespace std;

const int sz = 25;
int n, m;
int a[sz], b[sz];
vector<bool> used(sz, false);
signed main(){
    
   cin >> n >> m;
   unordered_map<int, int> mp;
   int x = 0;
   int ans = 0;
   for(int i = 0; i < n; i++){
    cin >> a[i];
    mp[a[i]]++;
   }for(int i = 0; i < m; i++){
    cin >> b[i];
   }for(int mask = 0; mask < (1 << m); mask++){
    int s = 0, y = 0;
    for(int i = 0; i < m; i++){
        if(mask&(1<<i) && !used[i]){
            s += b[i];
            y |= (1<<i);
        }
    }bool ok=false;
    int num;
    for(int i = 0; i < n; i++){
        if(s == a[i] && mp[a[i]]){
            num = a[i];
            ok=true;
            break;
        }
    }if(ok){
        mp[num]--;
        ans++;
        for(int i = 0; i < m; i++){
            if(y&(1<<i)){
                used[i] = true;
            }
        }
        

    }
   }if(ans == n){
    cout << "YES\n";
   }else {
    cout << "NO\n";
   }

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...