Cod sursa(job #719992)

Utilizator SpiriFlaviuBerbecariu Flaviu SpiriFlaviu Data 22 martie 2012 11:26:12
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <iostream>

using namespace std;

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

inline int Maxim(int a, int b){ return a>b?a:b; }
int a[5001][10001];
int main()
{
	int n,gmax;
	int g[5005],p[5005];
	if(! fin )
		return -1;
	fin >> n >> gmax;
	for(int i=1 ; i<=n ; i++)
		fin>>g[i]>>p[i];
	for(int i=1;i<=n;i++){
		a[i][0] = 0;
		for(int j=1 ; j<=gmax ;++j){
			if(j-g[i]<0)
				a[i][j] = a[i-1][j];
			else
				a[i][j] = Maxim(a[i-1][j], a[i-1][j-g[i]] + p[i]);
		}
		
	}
	fout << a[n][gmax] << "\n";
	
	return 0;
}