Cod sursa(job #681162)

Utilizator adrian_manducadrian manduc adrian_manduc Data 16 februarie 2012 18:21:32
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream out("rucsac.out");
int n,g,v[5001];
struct obiect
{
	int gr,pr;
};
obiect a[5001];
void citire()
{
	f>>n>>g;
	for(int i=1; i<=n; ++i)
		f>>a[i].gr>>a[i].pr;
	for(int i=1; i<=g; ++i)
		v[i]=-1;
}
void solve()
{
	v[0]=0;
	for(int i=1; i<=n; ++i)
		for(int j=g-a[i].gr; j>=0; --j)
			if(v[j]!=-1)
				if ( v[j]+a[i].pr > v[j+a[i].gr])
					v[j+a[i].gr]=v[j]+a[i].pr;
}
void afisare()
{
	int max=0;
	for(int i=1; i<=g; ++i)
		if (v[i]>max) max=v[i];
	out<<max;
}
int main()
{
	citire();
	solve();
	afisare();
	return 0;
}