제출 #1163747

#제출 시각아이디문제언어결과실행 시간메모리
1163747canhnam357은행 (IZhO14_bank)C++20
71 / 100
1095 ms436 KiB
// source problem : #include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define lb lower_bound #define ub upper_bound #define MASK(i) (1LL << (i)) void ckmax(int& f, int s) { f = (f > s ? f : s); } void ckmin(int& f, int s) { f = (f < s ? f : s); } int a[20], suma = 0, b[20], sumb = 0, n, m; void solve(int p) { if (suma == 0) { cout << "YES"; exit(0); } if (suma > sumb) return; if (p == m) return; sumb -= b[p]; solve(p + 1); sumb += b[p]; for (int i = 0; i < n; i++) { if (a[i] && a[i] < b[p]) return; if (a[i] >= b[p]) { a[i] -= b[p]; suma -= b[p]; sumb -= b[p]; solve(p + 1); a[i] += b[p]; suma += b[p]; sumb += b[p]; } } } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> m; for (int i = 0; i < n; i++) cin >> a[i], suma += a[i]; for (int i = 0; i < m; i++) cin >> b[i], sumb += b[i]; sort(b, b + m); solve(0); cout << "NO"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...