Submission #1000400

#TimeUsernameProblemLanguageResultExecution timeMemory
1000400akkshaysrBank (IZhO14_bank)C++17
100 / 100
128 ms16896 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#define fr first
#define se second
#define rep(i,a,b) for(int i = a; i < (b); ++i)
#define rrep(i,a,b) for(int i = a; i > (b); --i)
#define sz(x) (int)(x).size()
#define all(x) (x).begin(),(x).end()
#define IN(i,l,r) (l<i&&i<r)
#define pb push_back
#define ones __builtin_popcountll
using namespace std;
using namespace __gnu_pbds;
template <class T>
using OSTree = tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;
typedef pair<int,int> pi;
typedef vector<int> vi;
typedef vector<long long> vll;
typedef long long ll;
const int U = 20;

int main(){
	cin.tie(0)->sync_with_stdio(false);
	int n,m; cin >> n >> m;
    vi a(n), b(m);
    rep(i,0,n) cin >> a[i];
    rep(i,0,m) cin >> b[i];
    vll dp(1<<U,-1), remcash(1<<U,-1);
    dp[0] = 0;
    remcash[0] = 0;
    bool flag = false;
    rep(i,1,1<<m){
        rep(j,0,m){
            if(i&(1<<j) == 0) continue;
            int z = i ^ (1<<j);
            if(dp[z] < 0) continue;
            if(remcash[z] + b[j] < a[dp[z]]){
                dp[i] = dp[z];
                remcash[i] = remcash[z] + b[j]; 
            }else if(remcash[z] + b[j] == a[dp[z]]){
                dp[i] = dp[z] + 1;
                remcash[i] = 0;
            }
        }
        if(dp[i] == n){
            flag = true; break;
        }
    }
    cout << (flag ? "YES" : "NO") << '\n';
}

Compilation message (stderr)

bank.cpp: In function 'int main()':
bank.cpp:34:25: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
   34 |             if(i&(1<<j) == 0) continue;
      |                  ~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...