Submission #1279634

#TimeUsernameProblemLanguageResultExecution timeMemory
1279634ducanh0811Bank (IZhO14_bank)C++20
0 / 100
2 ms1136 KiB
#include <bits/stdc++.h> #define MASK(i) (1 << (i)) #define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; ++i) #define REV(i, a, b) for (int i = (a), _b = (b); i >= _b; --i) using namespace std; int n, m; #define MAXN 20 int a[MAXN]; int b[MAXN]; int f[MASK(MAXN)]; vector<int> cnt[1005]; bitset<MASK(MAXN)> dp[2]; void solve(){ cin >> n >> m; FOR(i, 0, n - 1) cin >> a[i]; FOR(i, 0, m - 1) cin >> b[i]; FOR(mask, 1, MASK(m) - 1){ int bit = __builtin_ctz(mask); f[mask] = f[mask ^ MASK(bit)] + b[bit]; cnt[f[mask]].push_back(mask); } dp[1][0] = 1; FOR(i, 0, n - 1){ dp[i&1].reset(); FOR(mask, 0, MASK(m) - 1){ if (!dp[!(i&1)][mask]) continue; for (int &x : cnt[a[i]]){ if ((x | mask) == (x ^ mask)){ dp[i&1][mask ^ x] = 1; } } } } FOR(mask, 0, MASK(m) - 1){ if (dp[(n-1)&1][mask]){ cout << "YES"; return; } } cout << "NO"; } #define task "test" int32_t main(){ if (fopen(task".inp","r")){ freopen(task".inp","r",stdin); freopen(task".out","w",stdout); } ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); solve(); return 0; }

Compilation message (stderr)

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