Submission #1229849

#TimeUsernameProblemLanguageResultExecution timeMemory
1229849escobrandBank (IZhO14_bank)C++20
52 / 100
1096 ms4420 KiB
#include <bits/stdc++.h> using namespace std; #define all(v) v.begin(),v.end() #define eb emplace_back #define ll long long #define fi first #define se second int i,n,t,m,j,tmp; int a[22],b[22],sum[(1<<20)],mask,sub; bool dp[22][(1<<20)],ans; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; for(i = 1;i<=n;i++) { cin>>a[i]; } for(i = 0;i<m;i++) { cin>>b[i]; } for( mask = 1;mask < (1<<m);mask++) { i = __builtin_ctz(mask); sum[mask] = sum[mask ^ (1<<i)] + b[i]; } dp[0][0] = 1; for(i = 1;i<=n;i++) { for( mask = 0;mask<(1<<m);mask++) { for( sub = mask;sub;sub = (sub - 1) & mask) { if(dp[i-1][sub] && sum[mask ^ sub] == a[i]) { dp[i][mask] = 1; break; } } if(dp[i-1][0] && sum[mask] == a[i]) { dp[i][mask] = 1; } if(dp[n][mask]==1) { 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...