제출 #1313519

#제출 시각아이디문제언어결과실행 시간메모리
1313519shirokito은행 (IZhO14_bank)C++20
100 / 100
540 ms4524 KiB
#include <bits/stdc++.h> using namespace std; #define all(a) (a).begin(), (a).end() #define BIT(mask, i) (((mask) >> (i)) & 1) using ll = long long; const int N = 20; const int INF = 1e9; int n, m, a[N], b[N]; int dp[1 << N]; void solve() { cin >> n >> m; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < m; i++) { cin >> b[i]; } for (int mask = 0; mask < (1 << m); mask++) { dp[mask] = -INF; } dp[0] = 0; int sum = 0; for (int i = 0; i < n; i++) { sum += a[i]; for (int mask = 0; mask < (1 << m); mask++) { if (dp[mask] == -INF) continue; for (int j = 0; j < m; j++) if (!BIT(mask, j)) { dp[mask | (1 << j)] = dp[mask] + b[j]; } } for (int mask = 0; mask < (1 << m); mask++) { if (dp[mask] != sum) dp[mask] = -INF; } } for (int mask = 0; mask < (1 << m); mask++) { if (dp[mask] != -INF) { cout << "YES" << '\n'; return; } } cout << "NO" << '\n'; } signed main() { cin.tie(0) -> sync_with_stdio(0); #define task "bank" if (fopen(task".in", "r")) { freopen(task".in", "r", stdin); freopen(task".out", "w", stdout); } int T = 1; // cin >> T; while (T--) { solve(); } }

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

bank.cpp: In function 'int main()':
bank.cpp:61:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   61 |         freopen(task".in", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:62:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   62 |         freopen(task".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...