제출 #1164493

#제출 시각아이디문제언어결과실행 시간메모리
1164493s3yoonpark은행 (IZhO14_bank)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h> 
#define ssize(x) (int)x.size() 
using namespace std; 
const int N = 21; 
int n, m; 
int a[N], b[N]; 
bool dp[N][1 << N]; 
vector<int> config[1001]; 
void solve() {
  cin >> n >> m; 
  for (int i = 1; i <= n; i++) cin >> a[i]; 
  for (int i = 1; i <= m; i++) cin >> b[i]; 
  for (int i = 0; i < (1 << m); i++) {
    int sum = 0; 
    for (int j = 0; j < m; j++) {
      if ((1 << j) & i) {
        sum += b[j + 1]; 
      }
    }
    config[i].push_back(sum); 
  }
  dp[0][0] = true; 
  for (int i = 1; i <= n; i++) {
    int e = a[i]; 
    for (int j = 0; j < (1 << m); j++) {
      if (!dp[i - 1][j]) continue; 
      for (int c : config[e]) {
        bool works = true; 
        for (int k = 0; k < m; k++) {
          bool inj = (1 << k) & j; 
          bool inc = (1 << k) & c; 
          if (inc && inj) works = false; 
        }
        if (works) {
          dp[i][j | c] = dp[i - 1][j]; 
        }
      }
    }
  }
  int ans = 0; 
  for (int i = 0; i < (1 << m); i++) {
    ans |= dp[n][i]; 
  }
  cout << (ans ? "YES\n" : "NO\n"); 
}
int main() {
  freopen("bank.in", "r", stdin); 
  freopen("bank.out", "w", stdout); 
  solve(); 
  return 0; 
}

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

bank.cpp: In function 'int main()':
bank.cpp:47:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |   freopen("bank.in", "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:48:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   48 |   freopen("bank.out", "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...