Pagini recente » Cod sursa (job #2272419) | Cod sursa (job #1112741) | Cod sursa (job #2195923) | Cod sursa (job #2195843) | Cod sursa (job #3332560)
#include <bits/stdc++.h>
using namespace std;
int d1[300555];
int d2[300555];
int v[25];
int main() {
ifstream cin("zebughil.in");
ofstream cout("zebughil.out");
int n, m;
for (int h = 1; h <= 3; ++h) {
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
cin >> v[i];
}
long long p = 1;
for (int i = 1; i <= n; ++i) {
for (int j = 0; j < p; ++j) {
d1[j + p] = v[i] + d1[j];
d2[j + p] = INT_MAX;
}
p *= 2;
}
p = 1;
for (int i = 1; i <= n; ++i) {
for (int j = 0; j < p; ++j) {
if (d1[j + p] <= m) {
for (int x = 0; x < p; ++x) {
if ((j & x) == 0 && d2[x] != INT_MAX) {
if (d2[x] + 1 < d2[j + p + x]) {
d2[j + p + x] = d2[x] + 1;
}
}
}
}
}
p *= 2;
}
cout << d2[p - 1] << "\n";
}
return 0;
}