제출 #337063

#제출 시각아이디문제언어결과실행 시간메모리
337063boykut은행 (IZhO14_bank)C++14
46 / 100
75 ms492 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, mn = -1, mnnum = -1;
      for (int i = 0; i < (1 << m); i++) {
        int sum = 0, num = i, index = m - 1, cnt1 = 0;
        while (num) {
          if ((num & 1) && !used[index]) {
            sum += b[index], cnt1++;
          }
          index--;
          num /= 2;
        }
        
        if (sum == a[I]) {
          if (mn == -1 || cnt1 < mn) {
            mn = cnt1;
            mnnum = i;
          }
        }
        
      }
      if (mn != -1) {
        cnt++;
        int index = m - 1;
        while (mnnum) {
          if ((mnnum & 1) && !used[index]) {
            used[index]  = 1;
          }
          index--;
          mnnum /= 2;
        }
      }
    }
    cnt == n ? cout << "YES\n" : cout << "NO\n";
  }
  
  return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

bank.cpp: In function 'int main()':
bank.cpp:28:11: warning: unused variable 'ok' [-Wunused-variable]
   28 |       int ok = 0, mn = -1, mnnum = -1;
      |           ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...