Submission #1243555

#TimeUsernameProblemLanguageResultExecution timeMemory
1243555minhpk은행 (IZhO14_bank)C++20
19 / 100
139 ms8660 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int z[1000005]; int t[1000005]; int dp[1<<20]; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int a,b; cin >> a >> b; for (int i=1;i<=a;i++){ cin >> z[i]; z[i]=z[i-1]+z[i]; } for (int i=1;i<=b;i++){ cin >> t[i]; } dp[0]=true; for (int i=0;i<(1<<b);i++){ int cur=0; for (int j=0;j<b;j++){ if (((i>>(j))&1)==1){ cur+=t[j]; } } if (!dp[i]){ continue; } if (cur==z[a]){ cout << "YES" << "\n"; return 0; } int pos=upper_bound(z+1,z+1+a,cur)-z; for (int j=0;j<b;j++){ if (((i>>(j))&1)==0){ int sad=cur+t[j]; if (sad<=z[pos]){ dp[i|(1<<j)]=true; } if (sad==z[a]){ cout << "YES" << "\n"; return 0; } } } } cout << "NO" << "\n"; 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...