Pagini recente » Cod sursa (job #1549388) | Cod sursa (job #2969865) | Cod sursa (job #1401234) | Cod sursa (job #1323958) | Cod sursa (job #2613873)
#include <stdio.h>
#include <stdlib.h>
#define max(x, y) (((x) > (y)) ? (x) : (y))
FILE *read, *write;
int main() {
read = fopen("rucsac.in", "r");
write = fopen("rucsac.out", "w");
int n, g;
fscanf(read, "%d%d", &n, &g);
int *answ = (int*)calloc((g + 1), sizeof(int));
for (int i = 0, x, y; i < n; ++i){
scanf("%d%d", &x, &y);
for (int j = g; j >= x; --j)
answ[ j ] = max(answ[ j ], answ[ j - x ] + y);
}
fprintf(write, "%d", answ[ g ]);
return 0;
}