Submission #880132

#TimeUsernameProblemLanguageResultExecution timeMemory
880132boris_7Bank (IZhO14_bank)C++17
19 / 100
55 ms7024 KiB
#include<bits/stdc++.h>

using namespace std;
using ll = long long;


void solve(){
    int n,m;
    cin>>n>>m;
    vector<int>a(n);
    vector<int>b(m);
    for(int &i:a){
        cin>>i;
    }
    for(int &i:b){
        cin>>i;
    }
    vector<vector<int>>sum(1001);
    for(int i = 0;i<(1<<m);i++){
        int gumar = 0;
        for(int j = 0;j<m;j++){
            if(i&(1<<j)){
                gumar+=b[j];
            }
        }
        if(gumar<=1000){
            sum[gumar].push_back(i);
        }
        // if(gumar == a[0]) cout<<i<<endl;
    }
    vector<bool>last(1<<m),cur(1<<m);
    for(int i = 0;i<sum[a[0]].size();i++){
        last[sum[a[0]][i]]=1;
    }
    for(int i = 1;i<n;i++){
        for(int j = 0;j<(1<<m);j++){
            for(int &k:sum[j]){
                if(k&j==0){
                    cur[j+k]=1;
                }
            }
        }
        last = cur;
        for(bool i:cur) i = 0;
    }
    int ans = 0;
    for(int i = 0;i<(1<<m);i++){
        ans |= last[i];
    }
    if(ans){
        cout<<"YES";
    }
    else{
        cout<<"NO";
    }
}

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr);
    // ll t;cin>>t;while(t--)
        solve();
}

Compilation message (stderr)

bank.cpp: In function 'void solve()':
bank.cpp:32:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     for(int i = 0;i<sum[a[0]].size();i++){
      |                   ~^~~~~~~~~~~~~~~~~
bank.cpp:38:23: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
   38 |                 if(k&j==0){
      |                      ~^~~
bank.cpp:44:18: warning: variable 'i' set but not used [-Wunused-but-set-variable]
   44 |         for(bool i:cur) i = 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...