Submission #1262763

#TimeUsernameProblemLanguageResultExecution timeMemory
1262763gmysBank (IZhO14_bank)C++17
100 / 100
121 ms8648 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define oo 1e18 const int MM = 1e6+7; int n,m,a[MM],b[MM]; pair<int,int> dp[1 << 20]; // .fi = so nguoi co the tra luong tinh den hien tai // .se = so tien dang co signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(int i = 0;i < n;i++) cin >> a[i]; for(int i = 0;i < m;i++) cin >> b[i]; for(int mask = 0;mask < (1 << m);mask++) { for(int i = 0;i < m;i++) { if(mask >> i & 1) { int p_mask = mask ^ (1 << i); int nums = dp[p_mask].fi, cur_coin = dp[p_mask].se; if(cur_coin + b[i] == a[nums]) { dp[mask] = max(dp[mask],{nums+1,0}); } else if(cur_coin + b[i] < a[nums]) { dp[mask] = max(dp[mask],{nums,cur_coin + b[i]}); } } } } for(int mask = 0;mask < (1 << m);mask++) { if(dp[mask] == make_pair(n,0)) { cout << "YES"; return 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...