Pagini recente » Cod sursa (job #1521155) | Cod sursa (job #2477106) | Cod sursa (job #768271) | Cod sursa (job #2490635) | Cod sursa (job #1508558)
#include <fstream>
#define lint long long int
using namespace std;
int n;
int v[17];
int dp[(1 << 17) + 5];
int main()
{
ifstream cin("zebughil.in");
ofstream cout("zebughil.out");
int t = 3;
//cin >> t;
while (t --) {
int g;
cin >> n >> g;
for (int i = 0; i < n; ++ i)
cin >> v[i];
int j;
lint s;
for (int i = 1; i < (1 << n); ++ i) {
s = 0;
for (j = 0; j < n; ++ j)
if (i & (1 << j))
s += v[j];
if (s <= g)
dp[i] = 1;
else {
dp[i] = n;
for (j = (i - 1) & i; j; j = (j - 1) & i)
if (dp[j] + dp[i ^ j] < dp[i])
dp[i] = dp[j] + dp[i ^ j];
}
}
cout << dp[(1 << n) - 1] << '\n';
}
cin.close();
cout.close();
return 0;
}