제출 #1328606

#제출 시각아이디문제언어결과실행 시간메모리
1328606rayxuBank (IZhO14_bank)C++20
100 / 100
100 ms16824 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    //freopen("bank.in","r",stdin);
    int n,m; cin>>n>>m;
    vector<int> a(n+1),b(m);
    for (int i=1;i<=n;i++) cin>>a[i];
    for (int i=0;i<m;i++) cin>>b[i];
    vector<pair<int,int>> dp(1<<m,{0,0});
    for (int i=1;i<(1<<m);i++) {
        for (int j=0;j<m;j++) {
            if ((i&(1<<j))) {
                pair<int,int> tem=dp[i^(1<<j)];
                if ((tem.second+b[j])==a[tem.first+1]) dp[i] = max(dp[i],{tem.first+1,0});
                else dp[i] = max(dp[i],{tem.first,tem.second+b[j]});
            }
        }
    }
    cout<<(dp[(1<<m)-1].first==n?"YES":"NO");
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...