Pagini recente » Cod sursa (job #1159654) | Monitorul de evaluare | infoarena - comunitate informatica, concursuri de programare | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #2605600)
#include <cstdio>
#include <algorithm>
#define MAX_OBJECTS 5001
#define MAX_WEIGHT 10001
using namespace std;
int C[MAX_OBJECTS][MAX_WEIGHT];
int P[MAX_OBJECTS], W[MAX_OBJECTS];
int main() {
FILE* fin = fopen("rucsac.in", "r");
FILE* fout = fopen("rucsac.out", "w");
int numOfObjects, maxWeight;
fscanf(fin, "%d%d", &numOfObjects, &maxWeight);
for (int i = 1;i <= numOfObjects;i ++) {
fscanf(fin, "%d%d", &W[i], &P[i]);
}
for (int i = 1;i <= numOfObjects;i ++)
for (int j = 0;j <= maxWeight;j ++) {
if (W[i] <= j)
C[i][j] = max(C[i - 1][j], C[i - 1][j - W[i]] + P[i]);
else
C[i][j] = C[i - 1][j];
}
fprintf(fout, "%d", C[numOfObjects][maxWeight]);
return 0;
}