Cod sursa(job #3281050)

Utilizator nusuntvictorVictor Stefan nusuntvictor Data 28 februarie 2025 10:35:49
Problema Zebughil Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("zebughil.in");
ofstream g("zebughil.out");



int main()
{
    int n,w;
    for(int test=1; test<=3; ++test){
        f>>n>>w;
        vector<pair<int,int>>dp(1<<n);
        vector<int>a(n);
        for(int i=0; i<n; ++i)
            f>>a[i];
        dp.clear();
        dp[0].first=1;
        for (int msk = 1; msk < (1<<n); ++msk) {
            dp[msk].first = n+1;
        }
        for(int msk=0; msk<(1<<n); ++msk){
            for(int j=0; j<n; ++j){
               if(msk&(1<<j))
                    continue;
                if(dp[msk].second+a[j]<=w){
                    dp[msk^(1<<j)]=min( dp[msk^(1<<j)],{dp[msk].first, dp[msk].second+a[j]});
                }
                else{
                    dp[msk^(1<<j)]=min(dp[msk^(1<<j)],{dp[msk].first+1,a[j]});
                }
            }


        }

        g<<dp[(1<<n)-1].first<<'\n';


    }


    return 0;
}