Cod sursa(job #803597)

Utilizator shuleavSulea Vlad shuleav Data 27 octombrie 2012 21:30:50
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>
#define NM 5010
#define GM 10010
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n,i,j,gr[NM],p[NM],dp[NM][GM],G,ANS;
int main ()
{
	f >> n >> G;
	for (i=1; i<=n; i++)
		f >> gr[i] >> p[i];
	for (i=1; i<=n; i++)
	for (j=1; j<=G; j++)
	{
		dp[i][j]=dp[i-1][j];
		if (j>=gr[i])

		dp[i][j]=max(dp[i][j], dp[i-1][j-gr[i]]+p[i]);
	}
	ANS=0;
	for (j=1; j<=G; j++)
		ANS=max(ANS,dp[n][j]);
	g << ANS << '\n';

	f.close();
	g.close();
	return 0;
}