제출 #885195

#제출 시각아이디문제언어결과실행 시간메모리
885195parlimoos은행 (IZhO14_bank)C++14
0 / 100
110 ms262144 KiB
//Be Name KHODA #pragma GCC optimize("Ofast") #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define pb push_back #define pp pop_back #define cl clear #define bg begin #define lb lower_bound #define ub upper_bound #define arr(x) array<int , x> #define endl '\n' int n , m; vector<int> a , b; vector<int> dp[20][(1 << 20)]; void f(){ dp[0][0].pb(a[0]); for(int i = 0 ; i < n ; i++){ for(int msk = 0 ; msk < (1 << m) ; msk++){ for(int j = 0 ; j < m ; j++){ if((msk >> j) & 1){ for(int el : dp[i][msk ^ (1 << j)]) if(el >= b[j]) dp[i][msk].pb(el - b[j]); } } } if(i == (n - 1)) break; for(int msk = 0 ; msk < (1 << m) ; msk++){ for(int el : dp[i][msk]) if(el == 0) dp[i + 1][msk].pb(a[i + 1]); } } for(int msk = 0 ; msk < (1 << m) ; msk++){ for(int el : dp[n - 1][msk]){ if(el == 0){ cout << "YES"; exit(0); } } } cout << "NO"; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(int i = 0 ; i < n ; i++){ int d; cin >> d; a.pb(d); } for(int i = 0 ; i < m ; i++){ int d; cin >> d; b.pb(d); } f(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...