Submission #1187933

#TimeUsernameProblemLanguageResultExecution timeMemory
1187933MrAndriaShymbulak (IZhO14_shymbulak)C++20
0 / 100
0 ms324 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 j=0;j<(1<<m);j++){ for(int i=0;i<m;i++){ 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...