Cod sursa(job #2605600)

Utilizator michael_blazemihai mihai michael_blaze Data 25 aprilie 2020 15:28:55
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#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;
}