Submission #850243

#TimeUsernameProblemLanguageResultExecution timeMemory
850243vjudge1은행 (IZhO14_bank)C++17
71 / 100
1039 ms10584 KiB
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define fi first
#define se second
#define mp make_pair
#define setpre(n) fixed << setprecision(n)
#define sz(x) (int) x.size()
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, int> pli;
typedef pair<int, ll> pil;
typedef pair<ll, ll> pll;
typedef pair<ld, int> pdi;
typedef pair<int, ld> pid;
#define Task "Bank"

const int N = 27;
int a[N], b[N];
bool dp[N][1 << 20];

signed main() {
    // freopen("test.txt", "r", stdin);
    // freopen("out.txt", "w", stdout);

    if (fopen(Task".in", "r")) {
        freopen(Task".in", "r", stdin);
        freopen(Task".out", "w", stdout);
    }

    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    int n, m; cin >> n >> m;
    for (int i = 1; i <= n; i++) cin >> a[i];
    for (int i = 0; i < m; i++) cin >> b[i];

    dp[0][0] = true;
    for (int i = 1; i <= n; i++)
        for (int mask1 = 0; mask1 < (1 << m); mask1++) {
            if (!dp[i - 1][mask1]) continue;
            for (int mask2 = 0; mask2 < (1 << m); mask2++) {
                if (mask1 & mask2) continue;
                int sum = 0;
                for (int j = 0; j < m; j++) 
                    if ((mask2 >> j) & 1) sum += b[j];

                if (sum == a[i]) dp[i][mask1 | mask2] = true;
            }
        }

    bool sas = false;
    for (int mask = 0; mask < (1 << m); mask++)
        if (dp[n][mask]) {
            sas = true;
            break;
        }

    cout << ((sas) ? "YES" : "NO");

    return 0;
}

Compilation message (stderr)

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