제출 #337059

#제출 시각아이디문제언어결과실행 시간메모리
337059boykut은행 (IZhO14_bank)C++14
19 / 100
71 ms384 KiB
#include <bits/stdc++.h>

using namespace std;

signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, m;
  cin >> n >> m;
  
  vector < int > a(n);
  vector < int > b(m);
  vector < int > used(m);
  
  
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  
  for (int i = 0; i < m; i++) {
    cin >> b[i];
  }  
  
  if (n <= 20 && m <= 20) {
    int cnt = 0;
    
    for (int I = 0; I < n; I++) {
      int ok = 0;
      for (int i = 0; i < (1 << m); i++) {
        int sum = 0, num = i, index = m - 1;
        while (num) {
          if ((num & 1) && !used[index]) {
            sum += b[index];
          }
          index--;
          num /= 2;
        }
        
        if (sum == a[I]) {
          ok = 1;
          int num = i, index = m - 1;
          while (num) {
            if ((num & 1) && !used[index]) {
              used[index] = 1;
            }
            index--;
            num /= 2;
          }
          break;
        }
        
      }
      cnt += ok;
    }
    cnt == n ? cout << "YES\n" : cout << "NO\n";
  }
  
  return 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...