Pagini recente » Cod sursa (job #3359259) | Cod sursa (job #3359438) | Cod sursa (job #3359263) | Cod sursa (job #3359435) | Cod sursa (job #3359261)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
const long long INF = (1LL << 60);
int n;
long long g, z[20], sum[1 << 17];
int dp[1 << 17];
int main() {
for(int test = 1; test <= 3; test++) {
fin >> n >> g;
int lim = 1 << n;
for(int i = 0; i < n; i++) {
fin >> z[i];
}
for(int mask = 0; mask < lim; mask++) {
sum[mask] = 0;
}
for(int mask = 1; mask < lim; mask++) {
int bit = mask & -mask;
int p = __builtin_ctz(bit);
sum[mask] = sum[mask ^ bit] + z[p];
}
for(int mask = 0; mask < lim; mask++) {
dp[mask] = n + 1;
}
dp[0] = 0;
for(int mask = 1; mask < lim; mask++) {
for(int sub = mask; sub; sub = (sub - 1) & mask) {
if(sum[sub] <= g) {
dp[mask] = min(dp[mask], dp[mask ^ sub] + 1);
}
}
}
fout << dp[lim - 1] << "\n";
}
return 0;
}