Submission #1267152

#TimeUsernameProblemLanguageResultExecution timeMemory
1267152cmiucBank (IZhO14_bank)C++20
100 / 100
80 ms8720 KiB
#include <iostream> using namespace std; const int N = 21; int A[N], B[N], Mx[1<<N], Sum[1<<N], pre[N]; int main(){ int n, m; cin>>n>>m; for (int i=0;i<n;i++) cin>>A[i], pre[i] = (i == 0 ? 0 : pre[i-1]) + A[i]; for (int j=0;j<m;j++) cin>>B[j]; for (int i=1;i<(1<<m);i++){ int b = 31 - __builtin_clz(i & -i); Sum[i] = Sum[i - (1<<b)] + B[b]; for (int j=0;j<m;j++){ if ((1<<j) & i){ int ind = Mx[i - (1<<j)]; Mx[i] = max(Mx[i], ind + (A[ind] == Sum[i] - (ind == 0 ? 0 : pre[ind - 1]))); } } } cout<<(Mx[(1<<m) - 1] == n ? "YES\n" : "NO\n"); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...