Pagini recente » Cod sursa (job #1521305) | Cod sursa (job #257217) | Cod sursa (job #2668109) | Cod sursa (job #2725106) | Cod sursa (job #2717480)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
int dp[(1 << 17) + 5], v[20];
int main()
{
int t = 3;
while(t--)
{
int n, g;
fin >> n >> g;
for(int i = 1; i <= n; ++i)
fin >> v[i];
for(int msk = 1; msk < (1 << n); ++msk)
{
dp[msk] = (1 << 26);
for(int submask = msk; submask; submask = (submask - 1) & msk)
{
long long sum = 0;
for(int j = 0; j < n; ++j)
if((1 << j) & submask)
{
sum += v[j + 1];
if(sum > g)
break;
}
if(sum <= g)
dp[msk] = min(dp[msk], dp[msk ^ submask] + 1);
}
}
fout << dp[(1 << n) - 1] << '\n';
}
return 0;
}