Pagini recente » Cod sursa (job #2290694) | Cod sursa (job #1687504) | Cod sursa (job #2348427) | Cod sursa (job #2856027) | Cod sursa (job #2786636)
#include <bits/stdc++.h>
using namespace std;
int n, g, a[17], dp[1 << 17];
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
int main()
{
for(int K = 1; K <= 3; K++)
{
fin >> n >> g;
for(int i = 0; i < n; i++)
fin >> a[i];
for(int i = 1; i < (1 << n); i++)
{
int suma = 0;
for(int j = 0; j < n; j++)
if((1 << j) & i)
suma += a[j];
if(suma <= g)
dp[i] = 1;
else
{
dp[i] = (1 << 20);
for(int sub_i = (i - 1) & i; sub_i; sub_i = (sub_i - 1) & i)
dp[i] = min(dp[i], dp[sub_i ^ i] + dp[sub_i]);
}
}
cout << dp[(1 << n) - 1] << '\n';
}
return 0;
}