제출 #1237978

#제출 시각아이디문제언어결과실행 시간메모리
1237978JerBank (IZhO14_bank)C++20
71 / 100
1098 ms49852 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 25; const int MAXM = 25; int n, m; int a[MAXN], b[MAXM]; vector<int> sum_subsets[1005]; set<long long> memo; void generate_subsets() { int total = 1 << m; for (int mask = 1; mask < total; mask++) { int sum = 0; for (int i = 0; i < m; i++) if ((mask >> i) & 1) sum += b[i]; if (sum <= 1000) sum_subsets[sum].push_back(mask); } } long long state_key(int curr, int used_mask) { return ((long long)curr << 20) | used_mask; } bool dfs(int curr, int used_mask) { if (curr == n) return true; long long key = state_key(curr, used_mask); if (memo.count(key)) return false; int target = a[curr]; for (int mask : sum_subsets[target]) if ((mask & used_mask) == 0) if (dfs(curr + 1, used_mask | mask)) return true; memo.insert(key); 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, greater<int>()); generate_subsets(); printf("%s\n", dfs(0, 0) ? "YES" : "NO"); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

bank.cpp: In function 'int main()':
bank.cpp:53:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |     scanf("%d%d", &n, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~
bank.cpp:56:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   56 |         scanf("%d", &a[i]);
      |         ~~~~~^~~~~~~~~~~~~
bank.cpp:59:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   59 |         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...