제출 #1332808

#제출 시각아이디문제언어결과실행 시간메모리
1332808coookie22gh은행 (IZhO14_bank)C++20
0 / 100
38 ms23972 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e6 + 12, INF = 1e9 + 7;

int main() {
    freopen("bank.in", "r", stdin);
    freopen("bank.out", "w", stdout);
    
    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];
    vector <pair <int, int>> dp(1 << m, {-1, -1});
    dp[0] = {0, 0};
    for (int mask = 0; mask < (1 << m); mask++) {
        if (dp[mask].first > -1) {
            int l = dp[mask].first;
            int r = dp[mask].second;
            if (l == n) {
                cout << "YES";
                return 0;
            }
            for (int i = 0; i < m; i++) {
                if (!(mask & (1 << i))) {
                    if (r + b[i] <= a[l]) {
                        pair <int, int> nv = {l, r + b[i]};
                        if (r + b[i] == a[l]) nv = {l + 1, 0};
                        if (nv > dp[mask | (1 << i)]) dp[mask | (1 << i)] = nv;
                    }
                }
            }
        }
    }
    if (dp[(1 << m) - 1].first == n) cout << "YES";
    else cout << "NO";
}

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

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