Submission #885193

#TimeUsernameProblemLanguageResultExecution timeMemory
885193parlimoosBank (IZhO14_bank)C++14
0 / 100
7 ms6748 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; bool dp[20][(1 << 20)]; void f(){ dp[0][0] = 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){ if(dp[i][msk ^ (1 << j)] >= b[j]) dp[i][msk] = dp[i][msk ^ (1 << j)] - b[j]; } } } if(i == (n - 1)) break; for(int msk = 0 ; msk < (1 << m) ; msk++){ if(dp[i][msk] == 0) dp[i + 1][msk] = a[i + 1]; } } for(int msk = 0 ; msk < (1 << m) ; msk++){ if(dp[n - 1][msk] == 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); } fill(&dp[0][0] , &dp[n - 1][(1 << m)] , -1); 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...