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