제출 #1002457

#제출 시각아이디문제언어결과실행 시간메모리
1002457vjudge1Bank (IZhO14_bank)C++17
71 / 100
1099 ms456 KiB
#include <bits/stdc++.h> #define int long long #define vtr vector #define vi vtr<int> #define ii pair<int, int> #define fi first #define se second #define len(s) (int)s.size() #define fd(v, s, e) for (int v = s; v < e; ++v) #define bk(v, s, e) for (int v = s-1; v >= e; --v) #define farr(i, arr) for (auto i: arr) #define all(arr) arr.begin(), arr.end() using namespace std; void presolve() { } int n, m; vi a, b; bool ck = false; void btr(int ind, int cur_i, int mask, int sum) { if (ind == n) { ck = true; return; } if (sum >= a[ind]) { if (sum == a[ind]) btr(ind+1, 0, mask, 0); return; } fd (i, cur_i, m) if (!(mask & (1 << i))) { btr(ind, i+1, mask + (1 << i), sum + b[i]); if (ck) return; } } void solve() { cin >> n >> m; a.resize(n); farr (&i, a) cin >> i; b.resize(m); farr (&j, b) cin >> j; sort(all(b), greater<int>()); btr(0, 0, 0, 0); cout << (ck? "YES" : "NO"); } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int Tc = 1; // cin >> Tc; auto S = chrono::high_resolution_clock::now(); presolve(); for (int T = 1; T <= Tc; ++T) { solve(); } auto F = chrono::high_resolution_clock::now(); double TC = chrono::duration_cast<chrono::microseconds>(F - S).count(); cerr << setprecision(6) << fixed << "\nExecution time: " << TC * (1e-6) << " sec\n"; 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...