Submission #1190701

#TimeUsernameProblemLanguageResultExecution timeMemory
1190701hikari1234Bank (IZhO14_bank)C++20
100 / 100
110 ms33268 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define ff first #define ss second int n,m; int a[25], b[25]; vector<pair<int,int>> dp((1<<21),{-1,-1}); signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); dp[0]={0,0}; cin>>n>>m; for(int i=0; i<n; i++){ cin>>a[i]; } for(int i=0; i<m; i++){ cin>>b[i]; } for(int i=0; i<(1<<m); i++){ int sum=0; for(int j=0; j<m; j++){ if((i&(1<<j))){ int prev=(i^(1<<j)); if(dp[prev].ss==-1) continue; int left=dp[prev].ff; int now=left+b[j]; int idx=dp[prev].ss; if(now==a[idx]){ dp[i]={0,idx+1}; } else if(now<a[idx]){ dp[i]={now,idx}; } if(dp[i].ss==n){ cout<<"YES"<<endl; return 0; } } } } cout<<"NO"<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...