Submission #984729

# Submission time Handle Problem Language Result Execution time Memory
984729 2024-05-17T03:47:09 Z TroySer Bank (IZhO14_bank) C++17
19 / 100
1000 ms 440 KB
#include <bits/stdc++.h>

using namespace std;

int N, M;
vector<int> salaries;
vector<int> bankNotes;

vector<int> params;

int LSOne(int a) {
    return a & (-a);
}

bool canDo = false;

void bitmask(int ind, vector<int> &params) {
    if (ind == M) {
        // checker
        for (int i = 0; i < N; i++) {
            // cout << i << ": ";
            int iBitmask = params[i];
            int currSum = 0;
            while (iBitmask) {
                int currInd = __builtin_ctz(LSOne(iBitmask));
                // cout << currInd << ", ";
                currSum += bankNotes[currInd];
                iBitmask -= LSOne(iBitmask);
            }
            // cout << "\n";
            if (currSum != salaries[i]) return;
        }
        cout << "YES\n";
        exit(0);
    } else {
        for (int i = 0; i < N; i++) {
            params[i] |= (1 << ind);
            bitmask(ind+1, params);
            params[i] ^= (1 << ind);
        }
        bitmask(ind+1, params);
    }
}

int main() {
    cin >> N >> M;
    salaries.resize(N);
    params.resize(N, 0);
    for (int i = 0; i < N; i++) {
        cin >> salaries[i];
    }
    bankNotes.resize(M);
    for (int i = 0; i < M; i++) {
        cin >> bankNotes[i];
    }
    bitmask(0, params);
    cout << "NO\n";
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 440 KB Output is correct
5 Correct 18 ms 344 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 18 ms 432 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 53 ms 348 KB Output is correct
5 Execution timed out 1060 ms 348 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1022 ms 348 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 440 KB Output is correct
5 Correct 18 ms 344 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 18 ms 432 KB Output is correct
10 Correct 3 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 53 ms 348 KB Output is correct
14 Execution timed out 1060 ms 348 KB Time limit exceeded
15 Halted 0 ms 0 KB -