Submission #1237962

#TimeUsernameProblemLanguageResultExecution timeMemory
1237962JerBank (IZhO14_bank)C++20
71 / 100
1093 ms412 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 25; int n, m; int a[MAXN], b[MAXN], used[MAXN]; bool can_pay(int curr) { if (curr == n) return true; int target = a[curr]; int subset_size = 1 << m; for (int mask = 1; mask < subset_size; ++mask) { int sum = 0; vector<int> indices; for (int i = 0; i < m; ++i) if ((mask >> i) & 1) { if (used[i]) { sum = -1; break; } sum += b[i]; indices.push_back(i); } if (sum == target) { for (int i : indices) used[i] = true; if (can_pay(curr + 1)) return true; for (int i : indices) used[i] = false; } } return false; } int main() { scanf("%d%d", &n, &m); for (int i = 0; i < n; i++) scanf("%d", &a[i]); for (int i = 0; i < m; i++) scanf("%d", &b[i]); sort(a, a + n); printf("%s\n", (can_pay(0)) ? "YES" : "NO"); return 0; }

Compilation message (stderr)

bank.cpp: In function 'int main()':
bank.cpp:51:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |     scanf("%d%d", &n, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~
bank.cpp:53:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |         scanf("%d", &a[i]);
      |         ~~~~~^~~~~~~~~~~~~
bank.cpp:56:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   56 |         scanf("%d", &b[i]);
      |         ~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...