Submission #166616

#TimeUsernameProblemLanguageResultExecution timeMemory
166616DovranBank (IZhO14_bank)C++11
19 / 100
5 ms2808 KiB
#include <bits/stdc++.h> #define N 100009 #define pii pair <int, int> #define ff first #define ss second #define pb push_back #define ll long long using namespace std; int n, m, v[N], c[N], b[N]; int vis[N]; vector<int>e[N]; int main(){ cin>>n>>m; for(int i=1; i<=n; i++) cin>>v[i]; for(int i=1; i<=m; i++) cin>>c[i], vis[c[i]]++; sort(v+1, v+1+n); b[0]=1; for(int h=n; h>=1; h--){ int mx=0; for(int i=1; i<=m; i++){ if(vis[c[i]] > 0){ for(int j=v[h]; j>=0; j--) if(b[j]==1){ if(b[j+c[i]]==0) e[j+c[i]]=e[j], e[j+c[i]].pb(c[i]); b[j+c[i]]=1, mx=max(j+c[i], mx); } } } if(b[v[h]]==0) return cout<<"NO", 0; for(auto j:e[v[h]]) vis[j]--; for(int i=1; i<=mx; i++){ if(b[i]==1) b[i]=0, e[i].clear(); } } cout<<"YES\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...