Pagini recente » Cod sursa (job #571414) | Cod sursa (job #2655764) | Cod sursa (job #1640102) | Cod sursa (job #1587480) | Cod sursa (job #3281050)
#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;
}