Submission #1187868

#TimeUsernameProblemLanguageResultExecution timeMemory
1187868MrAndriaBank (IZhO14_bank)C++20
19 / 100
25 ms8592 KiB
#include <bits/stdc++.h> using namespace std; #define ss second #define ff first int n,m,a[25],b[25]; pair <int,int> dp[(1<<21)]; int main(){ cin>>n>>m; for(int i=0;i<n;i++){ cin>>b[i]; } for(int j=0;j<m;j++){ cin>>a[j]; } b[n]=INT_MAX; for(int i=0;i<m;i++){ for(int j=0;j<(1<<m);j++){ if(j&(1<<i)){ if(dp[j^(1<<i)].ss+a[i]==b[dp[j^(1<<i)].ff]){ dp[j]=max(dp[j],make_pair(dp[j^(1<<i)].ff+1,0)); }else{ dp[j]=max(dp[j],make_pair(dp[j^(1<<i)].ff,dp[j^(1<<i)].ss+a[i])); } } } } for(int j=0;j<(1<<m);j++){ if(dp[j].ff>n-1){ 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...