Cod sursa(job #1077105)

Utilizator lilian_ciobanuLilian Ciobanu lilian_ciobanu Data 10 ianuarie 2014 21:43:23
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<fstream>
#include<algorithm>

using namespace std;

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


int main(){
	short int m[5005],p[5005],n,h,i,j,t=0;
	int a[2][10005]={};
	
	f>>n>>h;
	for(i=1; i<=n; ++i){
		f>>m[i]>>p[i];
	}
	
	for(i=1; i<=n; ++i){
		for(j=1; j<=h; ++j){
			if((j-m[i])>=0){
				a[t][j]=max(a[1-t][j], a[1-t][j-m[i]]+p[i]);
			}
			else{
				a[t][j]=a[1-t][j];
			}
		}
		
		t=1-t;
	}
	
	g<<max(a[t][h],a[1-t][h]);
	
	f.close();
	g.close();
return 0;
}