Pagini recente » Cod sursa (job #703734) | Cod sursa (job #2254647) | Cod sursa (job #3238636) | Cod sursa (job #98087) | Cod sursa (job #981462)
Cod sursa(job #981462)
#include <cstdio>
#include <algorithm>
using namespace std;
const int WMAX = 5000000, INFI = 2e9;
int D[WMAX];
int main () {
freopen ("rucsac.in", "r", stdin);
freopen ("rucsac.out", "w", stdout);
int N, W, i, j, a, b;
scanf ("%d%d", &N, &W);
for (i = 1; i <= W; ++i)
D[i] = INFI;
for (i = 1; i <= N; ++i) {
scanf ("%d%d", &a, &b);
for (j = W; j > a; --j)
D[j] = min (D[j], D[j - a] + b);
for (; j >= 1; --j)
D[j] = min (D[j], b);
}
if (D[W] != INFI)
printf ("%d", D[W]);
else
printf ("-1");
}