Cod sursa(job #1002955)

Utilizator nimeniaPaul Grigoras nimenia Data 29 septembrie 2013 13:42:48
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>
#include <fstream>
#include <climits>
#include <string.h>

using namespace std;

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

int main() {

	int n , w_max;
	f >> n >> w_max;

	int w[n + 1], p[n + 1];

	for (int i = 0; i < n; i++) {
		f >> w[i] >> p[i];
	}

	int best[w_max + 1];
	memset(best, 0, (w_max + 1) * sizeof(int));

	for (int i = 0; i < n; i++) {
		for (int j = w_max; j >= 1; j--) {
			best[j] = max(
						best[j],
						j - w[i] < 0 ? 0 : best[j - w[i]] + p[i]
						);
		}
	}

	g << best[w_max];

}