Cod sursa(job #819077)

Utilizator Alexxino7Alexandru Popescu Alexxino7 Data 18 noiembrie 2012 15:12:39
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<iostream>
#include<fstream>
using namespace std;
#define NMax 50003

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int GMax,W[NMax],C[NMax],N;

void citire(){
	fin>>N>>GMax;
	for(int i=1;i<=N;i++){
		fin>>W[i]>>C[i];
	}
}

int CMax=0;
void findmax(int IndIt,int AvG,int Csofar){
	if(Csofar > CMax)
		CMax = Csofar;
	if(IndIt > 1){
		findmax(IndIt-1, AvG, Csofar);
		
		if(AvG >= W[IndIt])
			findmax(IndIt-1, AvG-W[IndIt], Csofar+C[IndIt]);
	}
}

int main(){
	
	citire();
	findmax(N,GMax,0);
	
	fout<<CMax;
	
	fin.close();
	fout.close();
	return 0;
}