Submission #93827

#TimeUsernameProblemLanguageResultExecution timeMemory
93827dalgerokBank (IZhO14_bank)C++14
19 / 100
180 ms8700 KiB
#include<bits/stdc++.h> using namespace std; const int N = 30, M = 21; int n, m, a[N], b[N], sum[(1 << M)], dp[(1 << M)]; int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> m; for(int i = 1; i <= n; i++){ cin >> a[i]; a[i] += a[i - 1]; } for(int i = 0; i < m; i++){ cin >> b[i]; } for(int mask = 0; mask < (1 << m); mask++){ if(dp[mask] >= n){ return cout << "YES", 0; } for(int i = 0; i < m; i++){ if((i >> mask) & 1){ continue; } sum[mask ^ (1 << i)] = sum[mask] + b[i]; if(a[dp[mask] + 1] == sum[mask] + b[i]){ dp[mask ^ (1 << i)] = max(dp[mask ^ (1 << i)], dp[mask] + 1); } else{ dp[mask ^ (1 << i)] = max(dp[mask ^ (1 << i)], dp[mask]); } } } cout << "NO"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...