Cod sursa(job #757689)

Utilizator gener.omerGener Omer gener.omer Data 12 iunie 2012 23:20:01
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>
#include <fstream>

using namespace std;

#define NMAX 5005
#define GMAX 10005

int W[NMAX], P[NMAX];

int dp[NMAX][GMAX];
int N, G;

void compute()
{
	for(int i = 1; i <= N; ++i)
		for(int j = 0; j <= G; ++j){
			dp[i][j] = dp[i-1][j];
			
			if(j - W[i] >= 0)
				dp[i][j] = max(dp[i-1][j], dp[i-1][j-W[i]] + P[i]);
		}	
}

int main()
{
	ifstream  in("rucsac.in");
	ofstream out("rucsac.out");
	
	in >> N >> G;
	for(int i = 1; i <= N; ++i)
		in >> W[i] >> P[i];
	
	compute();
	out << dp[N][G];
	
	return 0;
}