Cod sursa(job #2626660)

Utilizator Alex_AndrewAnonim Alex_Andrew Data 7 iunie 2020 14:34:55
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");

int knapSack(vector<vector<int>> objects, int maxWeight){
    vector< int > dpVal(maxWeight+1);
    int maximum = 0;
    for(int i=1; i<objects.size(); ++i){
        for(int curWeight = maxWeight-objects[i][1]; curWeight>=0; --curWeight){
            if( dpVal[curWeight+objects[i][0]] < dpVal[curWeight] + objects[i][1] )
			{
				dpVal[curWeight+objects[i][1]] = dpVal[curWeight] + objects[i][0];
				maximum = std::max(dpVal[curWeight+objects[i][1]],maximum);


			}
        }


    }

    return maximum;
}
int main()
{

int noObjects, maxWeight;
f>>noObjects>>maxWeight;
vector< vector<int> > obj(noObjects+1,vector<int>(2));

for(int i=1; i<=noObjects; ++i){
    int val, weight;
    f>>weight>>val;
    obj[i][0] = weight;
    obj[i][1] = val;
}
g<<knapSack(obj, maxWeight);

}