Cod sursa(job #1335983)

Utilizator traian.vidrascutraian vidrascu traian.vidrascu Data 6 februarie 2015 11:11:26
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("rucsac.in");
ofstream g("rucsac.out");

struct ob
{
int p;
int gr;
};
ob v[5005];
int n,G,m[2][10005];

int main ()
{
	int i,j, l;
	f>>n>>G;
	
	for(i=1;i<=n;i++)
		f>>v[i].gr>>v[i].p;
	l=0;
	for(i=1;i<=n;i++)
	{
		
		for(j=0;j<=G;j++)
		{
			m[l][j]=m[1-l][j]; // nu se pune obiectul i
			if(v[i].gr<=j)
				m[l][j]=max(m[l][j], m[1-l][j-v[i].gr]+v[i].p); // incercam sa punem obiectul i pe o pozitie anterioara
		}
	l=1-l;
	}
	g<<m[1-l][G];
}