Submission #49807

#TimeUsernameProblemLanguageResultExecution timeMemory
49807mra2322001Bank (IZhO14_bank)C++14
100 / 100
287 ms91136 KiB
#include <bits/stdc++.h> #define f0(i, n) for(int i=(0); i<n; i++) #define f1(i, n) for(int i=(1); i<=n; i++) #define bit(x, y) (((x) >> (y))&1) using namespace std; typedef long long ll; const int N = 22; int n, m, a[N], b[N]; int f[22][1 << 20]; vector <int> t[N]; int calc(int i, int s){ if(f[i][s] >= 0) return f[i][s]; if(i == n + 1){ cout << "YES"; exit(0); } int &ans = f[i][s]; ans = 0; for(auto x:t[i]){ if(x & s) continue; ans = ans | calc(i + 1, s | x); if(ans) break; } return ans; } main(){ ios_base::sync_with_stdio(0); cin >> n >> m; f1(i, n) cin >> a[i]; f1(i, m) cin >> b[i]; memset(f, -1, sizeof(f)); for(int i = 1; i <= (1 << m); i++){ int val = 0; int save = 0; f0(j, m){ if(bit(i, j)) val += b[j + 1]; if(bit(i, j)){ save = save + (1 << j); } } f1(j, n){ if(val==a[j]) t[j].push_back(save); } } calc(1, 0); cout << "NO"; }

Compilation message (stderr)

bank.cpp:30:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...