Pagini recente » Cod sursa (job #2899830) | Cod sursa (job #137093) | Cod sursa (job #3274847) | Cod sursa (job #3288735) | Cod sursa (job #2879340)
#include <stdio.h>
#define NMax 5005
#define WMax 10005
using namespace std;
int n, W;
int w[NMax], v[NMax];
int value[WMax][NMax];
int main() {
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
scanf("%d %d", &n, &W);
for (int i = 1; i <= n; i++) {
scanf("%d %d", &w[i], &v[i]);
}
for (int cap = 0; cap <= W; cap++) { value[cap][0] = 0; }
for (int i = 1; i <= n; i++) {
for (int cap = 0; cap <= W; cap++) {
value[cap][i] = value[cap][i-1];
if (cap >= w[i]) {
if (value[cap][i] < value[cap-w[i]][i-1] + v[i]) {
value[cap][i] = value[cap-w[i]][i-1] + v[i];
}
}
}
}
printf("%d\n", value[W][n]);
return 0;
}