Cod sursa(job #700312)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 1 martie 2012 09:23:21
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<fstream>

#define dim 5002

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int D[2][dim],i,x,j,G,n;
inline int max(int a,int b){
	if(a<b)
		return b;
	return a;
}
struct {
	int w,p;
}
v[dim];
int main (){
	fin>>n>>G;
	
	for(i=1;i<=n;i++)
		fin>>v[i].w>>v[i].p;		
	
	for(i=1;i<=n;i++){
		x=1-x;
			for(j=0;j<=G;j++){
				if(v[i].w<=j){
					D[1-x][j]=max(D[x][j],D[x][j-v[i].w]+v[i].p);
				}
				else
					D[1-x][j]=D[x][j];
			}
	}
	fout<<D[1-x][G];
	return 0;
}