Submission #1230973

#TimeUsernameProblemLanguageResultExecution timeMemory
1230973vukhacminhBank (IZhO14_bank)C++20
52 / 100
1095 ms4448 KiB
/** * Author : Vu Khac Minh **/ #include <bits/stdc++.h> #define ll long long #define BIT(x,i) (((x)>>(i))&(1)) #define MASK(x) ((1ll)<<(x)) using namespace std; const int maxn = 1e5 + 5; const int mod = 1e9+7; int n,m,a[maxn],b[maxn],dp[21][MASK(20)],sum[maxn]; 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]; for(int i = 1;i<=m;i++) cin>>b[i]; dp[0][0] = 1; for(int mask = 0;mask<MASK(m);mask++) { for(int i =1;i<=m;i++) if(BIT(mask,i-1)) sum[mask] +=b[i]; } for(int i =0;i<n;i++) { for(int mask = 0;mask<MASK(m);mask++) if(dp[i][mask]!=0) { for(int prev = 0;prev<MASK(m);prev++) if((mask & prev) == 0 && sum[prev] == a[i+1]) { dp[i+1][mask|prev] = 1; } } } for(int mask = 0;mask<MASK(m);mask++) if(dp[n][mask]) { 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...