Pagini recente » Cod sursa (job #1957034) | Cod sursa (job #2908818) | Cod sursa (job #321997) | Cod sursa (job #2056404) | Cod sursa (job #2439104)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ifstream cin("zebughil.in");
ofstream cout("zebughil.out");
for (int i = 0; i < 3; ++i) {
ll n, g;
cin >> n >> g;
vector < ll > v(n);
for (int i = 0; i < n; ++i) {
cin >> v[i];
}
const int lim = 1 << n;
vector < ll > cost(lim);
for (int j = 0; j < lim; ++j) {
for (int k = 0, bit = 1; k < n; ++k, bit *= 2) {
if (j & bit) {
cost[j] += v[k];
}
}
}
int ans = 0;
int used = (1 << n) - 1;
while (used) {
int mx = 0;
int mxMsk = 0;
for (int j = 0; j < lim; ++j) {
int msk = used & j;
if (cost[msk] <= g) {
if (cost[msk] > mx) {
mx = cost[msk];
mxMsk = msk;
}
}
}
int tmp = (1 << n) - 1;
mxMsk = mxMsk ^ tmp;
used = used & mxMsk;
++ans;
}
cout << ans << endl;
}
return 0;
}