Submission #1330078

#TimeUsernameProblemLanguageResultExecution timeMemory
1330078riafhasan2010Bank (IZhO14_bank)C++17
71 / 100
1096 ms460 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, m; cin >> n >> m;
  vector<int> a(n), b(m);
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < m; i++) cin >> b[i];
  int pwm = (1 << m);
  bool ans = true;
  queue<int> que;
  que.push(0);
  for (int i = 0; i < n; i++) {
    auto q = que; que = {};
    while (!q.empty()) {
      auto v = q.front(); q.pop();
      for (int j = 1; j < pwm; j++) {
        auto cur = v;
        int sum = 0;
        for (int k = 0; (1 << k) <= j; k++) {
          int pw = (1 << k);
          if (j & pw) {
            if (!(v & pw)) {
              sum += b[k];
              cur |= pw;
            }
            else {
              sum = -1;
              break;
            }
          }
        }
        if (sum == a[i]) que.push(cur);
      }
    }
    if (que.empty()) {
      ans = false;
      break;
    }
  }
  cout << (ans ? "YES" : "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...