Pagini recente » Cod sursa (job #1967541) | Cod sursa (job #3005637) | Cod sursa (job #2931380) | Cod sursa (job #1448702) | Cod sursa (job #1821008)
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
const int INF = (1 << 31);
int n, w, d[10010], e[1010], c[1010], i, j;
int main() {
memset(d, 1, sizeof(d));
fin >> n >> w;
for (i = 1; i <= n; ++i) {
fin >> e[i] >> c[i];
}
d[0] = 0;
for (i = 1; i <= n; ++i) {
for (j = w; j >= 0; --j) {
if (d[j] != INF) {
if (j + e[i] <= w) {
d[j + e[i]] = min(d[j] + c[i], d[j + e[i]]);
} else {
d[w] = min(d[w], d[j] + c[i]);
}
}
}
}
if(d[w]!=INF) {
fout << d[w];
} else {
fout << "-1";
}
return 0;
}