제출 #1231006

#제출 시각아이디문제언어결과실행 시간메모리
1231006vukhacminhBank (IZhO14_bank)C++20
19 / 100
67 ms16456 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]; vector<int> v[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]; for(int mask = 0;mask<MASK(m);mask++) { for(int i =1;i<=m;i++) if(BIT(mask,i-1)) sum[mask] +=b[i]; v[sum[mask]].push_back(mask); } int all = a[1]; for(auto mask : v[a[1]]) dp[1][mask] = 1; for(int i =1;i<n;i++) { for(auto mask : v[all]) if(dp[i][mask]!=0) { for(auto prev : v[a[i+1]]) { if((mask & prev) == 0) dp[i+1][prev] = 1; } } all+=a[i+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...