Submission #961562

#TimeUsernameProblemLanguageResultExecution timeMemory
961562doducanhBank (IZhO14_bank)C++14
100 / 100
136 ms8664 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second pair<int,int>f[(1<<20)+7]; int a[25],b[25]; int n,m; main() { cin>>n>>m; for(int i=0;i<n;i++)cin>>a[i]; for(int i=0;i<m;i++)cin>>b[i]; f[0]={0,0}; for(int mask=0;mask<(1<<m);mask++){ if(f[mask].fi==n){ cout<<"YES"; return 0; } for(int i=0;i<m;i++){ if((mask>>i)&1)continue; pair<int,int> newstate; if(f[mask].se+b[i]<a[f[mask].fi]){ newstate={f[mask].fi,f[mask].se+b[i]}; } else if(f[mask].se+b[i]==a[f[mask].fi]){ newstate={f[mask].fi+1,0}; } f[mask^(1<<i)]=max(f[mask^(1<<i)],newstate); } } cout<<"NO"; return 0; }

Compilation message (stderr)

bank.cpp:9:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    9 | main()
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...