Submission #1174897

#TimeUsernameProblemLanguageResultExecution timeMemory
1174897Warinchai은행 (IZhO14_bank)C++20
100 / 100
92 ms8636 KiB
#include<bits/stdc++.h> using namespace std; int notes[25]; int ppl[25]; int mx[(1<<21)+5]; int lft[(1<<21)+5]; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n,m;cin>>n>>m; for(int i=1;i<=n;i++){ cin>>ppl[i]; } for(int i=0;i<m;i++){ cin>>notes[i]; } for(int i=0;i<(1<<(m));i++){ //cerr<<"i:"<<i<<"\n"; for(int j=0;j<m;j++){ if(((i>>j)&1)==0)continue; int prv=(i^(1<<j)); //cerr<<prv<<" "; int val=mx[prv]+1; if(val>n){ mx[i]=mx[prv]; lft[i]=lft[prv]; continue; } int have=lft[prv]+notes[j]; if(have==ppl[val]){ if(val>mx[i]){ mx[i]=val; lft[i]=0; } }else{ if(val-1>=mx[i]){ mx[i]=val-1; lft[i]=have; } } } //cerr<<"\n"; //cerr<<i<<" "<<mx[i]<<" "<<lft[i]<<"\n"; } //cerr<<(1<<(m)-1)<<"\n"; if(mx[(1<<m)-1]==n){ cout<<"YES\n"; }else{ cout<<"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...