Submission #1313642

#TimeUsernameProblemLanguageResultExecution timeMemory
1313642vaishakhvBank (IZhO14_bank)C++20
0 / 100
2 ms1592 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main() {
	ios::sync_with_stdio(0);
    cin.tie(0);

    ll n, m; cin >> n >> m;
    vector<ll> a(n);
    for(ll&A:a) cin >> A;

    sort(a.begin(), a.end());

    vector<vector<ll>> dp(n+1, vector<ll>(1<<m, 1e18));
    dp[0][0] = 0;
    for (ll i = 1; i <= n; i++){
        for (ll mask{}; mask < (1<<m); mask++){
            for (ll b{}; b < m; b++){
                if ((1<<b) | mask){
                    if (dp[i-1][mask] == (ll)1e18) continue;
                    dp[i][mask] = min(dp[i-1][mask] - a[i+1], dp[i][mask]);
                }
            }
            if (!dp[i][mask] == 0) dp[i][mask] = 1e18;
        }
    }

    for (ll i{}; i < (1<<m); i++){
        if (dp[n][i] == 0){ cout << "YES"; return 0; }
    }
    cout << "NO";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...