Cod sursa(job #3281051)

Utilizator nusuntvictorVictor Stefan nusuntvictor Data 28 februarie 2025 10:38:51
Problema Zebughil Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 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,{n+1,0});
        vector<int>a(n);

        for(int i=0; i<n; ++i)
            f>>a[i];

        dp[0].first=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;
}