Cod sursa(job #1950204)

Utilizator Alex18maiAlex Enache Alex18mai Data 2 aprilie 2017 20:00:36
Problema Problema rucsacului Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>
#include <vector>

using namespace std ;

ifstream  cin ("rucsac.in") ;
ofstream  cout ("rucsac.out") ;

int dp[10001];

int main()
{
	dp [0] = 0 ;
	int sum_cur = 0 ;
	int n, gmax ;
	cin >> n >> gmax ;
	while (n --) {
		int g, p;
		cin >> g >> p ;
		for (int i = sum_cur ; i >= 0 ; -- i) {
			if (i + g < 10001) {
				dp [i + g] = max (dp [i + g] , dp[i] + p) ;
			}
		}
		sum_cur += g ;
	}
	int best = 0 ;
	for (int i = gmax; i >= 0; -- i) {
		best = max (best, dp[i]) ;
	}
	cout << best << '\n' ;
	return 0 ;
}