Submission #1262350

#TimeUsernameProblemLanguageResultExecution timeMemory
1262350longsaumuiBank (IZhO14_bank)C++20
71 / 100
1095 ms436 KiB
#include <bits/stdc++.h>
using namespace std;
int n,m;
vector<int> salary, bills;
vector<bool> used;

bool backtrack(int id) {
    if (id == n) return true;
    int lim = (1 << m);
    for (int mask = 1;mask < lim;mask++) {
        int sum = 0;
        bool ok = true;
        vector<int> used_temp;
        for (int i = 0;i < m;i++) {
            if (mask & (1 << i)) {
                if (used[i]) {
                    ok = false;
                    break;
                }
                sum += bills[i];
                used_temp.push_back(i);
            }
        }
        if (ok && sum == salary[id]) {
            for (int i : used_temp) used[i] = true;
            if (backtrack(id + 1)) return true;
            for (int i : used_temp) used[i] = false;
        }
    }
    return false;
}

int main() {
    if (fopen("task.inp" , "r")) {
        freopen("task.inp" , "r" , stdin);
        freopen("task.out" , "w" , stdout);
    }
    ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin >> n >> m;
    salary.resize(n);
    bills.resize(m);
    used.resize(m , false);
    for (int i = 0;i < n;i++) cin >> salary[i];
    for (int i = 0;i < m;i++) cin >> bills[i];
    if (backtrack(0)) cout << "YES\n";
    else cout << "NO\n";
    return 0;
}

Compilation message (stderr)

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