Cod sursa(job #1540962)

Utilizator valiro21Valentin Rosca valiro21 Data 3 decembrie 2015 16:15:51
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <map>

#define GMax 10001

using namespace std;

unsigned int mp[GMax];
unsigned int N, W, value, weight;

int main() {
	freopen("rucsac.in", "rt", stdin);
	freopen("rucsac.out", "wt", stdout);

	cin >> N >> W;
	for (unsigned int i = 0; i < N; i++) {
		cin >> weight >> value;

		if (mp[weight] < value)
			mp[weight] = value;

		for (unsigned int j = W; j > 0; j--)
			if (j + weight <= W && mp[j + weight] < mp[j] + value)
				mp[j + weight] = mp[j] + value;
	}

	unsigned int vMax = 0;
	for (unsigned int i = W; i > 0; i--)
		if (mp[i] > vMax)
			vMax = mp[i];

	cout << vMax;

	return 0;
}