Cod sursa(job #1736521)

Utilizator delia_ioanaCeapa Delia Ioana delia_ioana Data 1 august 2016 21:50:45
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <iostream>
#include <vector>
 
using namespace std;
 
int main() {
	vector<int> W, P;
	ifstream infile; 
   	infile.open("rucsac.in");
	ofstream outfile;
	outfile.open("rucsac.out");

	int N, G, max = 0, val1, val2;
	infile >> N >> G;

	vector<int> Din(G + 1, 0);
     
	for (int i = 0; i < N; i ++) {
		infile >> val1 >> val2;
		W.push_back(val1);
		P.push_back(val2);
	}

	for (int i = 0; i < N; i ++)
		for (int j = G - W[i]; j >= 0; j --)
			if (Din[j + W[i]] < Din[j] + P[i]) {
				Din[j + W[i]] = Din[j] + P[i];
				if (Din[j + W[i]] > max)
					max = Din[j + W[i]];    
			}   
	
	outfile << max << endl;
	return 0;
}