Pagini recente » Cod sursa (job #1473978) | Cod sursa (job #986028) | Cod sursa (job #2955919) | Cod sursa (job #1583502) | Cod sursa (job #1557180)
#include <cstdio>
#define CONFIGMAX 1<<17
#define NMAX 17
int T, N, G;
int d[CONFIGMAX + 5];
int vg[NMAX + 5];
long long SUM;
int main () {
freopen ("zebughil.in", "r", stdin);
freopen ("zebughil.out", "w", stdout);
T = 3;
while (T--) {
scanf ("%d%d", &N, &G);
for (int i = 0; i < N; i++) {
scanf ("%d", &vg[i]);
}
for (int i = 1; i < (1 << N); i++) {
SUM = 0;
for (int bit = 0; bit < N; bit++) {
if (i & (1 << bit)) {
SUM += vg[bit];
}
}
if (SUM <= G) {
d[i] = 1;
}
else {
d[i] = N;
for (int j = i & (i - 1); j > 0; j = (j - 1) & i) {
if (d[j] + d[i ^ j] < d[i]) {
d[i] = d[j] + d[i ^ j];
}
}
}
}
printf ("%d\n", d[(1 << N) - 1]);
}
return 0;
}