Submission #1163284

#TimeUsernameProblemLanguageResultExecution timeMemory
1163284boclobanchatBank (IZhO14_bank)C++20
0 / 100
67 ms9616 KiB
#include<bits/stdc++.h> using namespace std; const int MAXN=1048576; int A[22],B[22],sum[MAXN],D[MAXN],S[22]; bool ck[MAXN]; int getlog(long long n) { return 63-__builtin_clzll(n); } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m,s=0; cin>>n>>m; for(int i=0;i<n;i++) { cin>>A[i]; S[i]=A[i]; if(i) S[i]+=S[i-1]; } S[n]=1e9; for(int i=0;i<m;i++) cin>>B[i]; for(int i=1;i<(1<<m);i++) { sum[i]=sum[i-(1<<getlog(i))]+B[getlog(i)]; for(int j=0;j<n;j++) D[i]+=(sum[i]<S[j+1])+(sum[i]>=S[j]); } ck[0]=true; for(int i=0;i<(1<<m);i++) for(int j=0;j<m;j++) if(!(i&(1<<j))&&D[i|(1<<j)]-D[i]<=1) ck[i|(1<<j)]|=ck[i]; for(int i=0;i<(1<<m);i++) if(ck[i]&&D[i]==n*2) return cout<<"YES",0; cout<<"NO"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...