Pagini recente » Cod sursa (job #1585151) | Cod sursa (job #2824932) | Cod sursa (job #2907838) | Cod sursa (job #1273982) | Cod sursa (job #2029335)
#include <cstdio>
#define MAX_G 10000
int d[MAX_G + 1];
int main(void) {
FILE *f = fopen("rucsac.in", "r");
freopen("rucsac.out", "w", stdout);
int N, G;
int i, j, w, p;
fscanf(f, "%d %d", &N, &G);
for (i = 1; i <= N; i++) {
fscanf(f, "%d %d", &w, &p);
for (j = G - w; j >= 0; j--) {
if (d[j] + p > d[j + w]) {
d[j + w] = d[j] + p;
}
}
}
int max = 0;
for (i = 1; i <= G; i++) {
if (d[i] > max) {
max = d[i];
}
}
fprintf(stdout, "%d\n", max);
fclose(f);
fclose(stdout);
return 0;
}