Cod sursa(job #790520)

Utilizator toranagahVlad Badelita toranagah Data 21 septembrie 2012 17:06:37
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

const int N_MAX = 5010;

using namespace std;

ifstream fin;
ofstream fout;

int cost[N_MAX], castig[N_MAX];
int best[2*N_MAX];

int main () {
	int N, G;
	
	fin.open("rucsac.in");
	fin >> N >> G;
	for (int i = 1; i <= N; i ++) {
		fin >> cost[i] >> castig[i];
	}
	fin.close();
	
	for (int i = 1; i <= N; i ++) {
		for (int j = G - cost[i]; j >= 0; j --) {
			if (best[j+cost[i]] < best[j] + castig[i]) {
				best[j+cost[i]] = best[j] + castig[i];
			}
		}
	}
	
	fout.open("rucsac.out");			
	fout << best[G];
	fout.close();
	
	return 0;
}