Cod sursa(job #2854387)

Utilizator ChelaruPaulChelaru Paul ChelaruPaul Data 21 februarie 2022 12:45:16
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>>
#include <vector>
using namespace std;

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

int main()
{
    int nrObiecte, capacitateRucsac;

    fin >> nrObiecte >> capacitateRucsac;

    vector <int> greutateObiect(nrObiecte + 1), valoareObiect(nrObiecte + 1);
    for(int i = 1; i <= nrObiecte; i ++)
        fin >> greutateObiect[i] >> valoareObiect[i];

    vector <vector<int> > proces (nrObiecte + 1, vector<int>(capacitateRucsac + 1));
    for(int i = 1; i <= nrObiecte; i ++) {
        for(int j = 1; j <= capacitateRucsac; j ++) {
                proces[i][j] = proces[i - 1][j];

            if(j >= greutateObiect[i])
                proces[i][j] = max(proces[i - 1][j], proces[i - 1][j - greutateObiect[i]] + valoareObiect[i]);
        }
    }

    fout << proces[nrObiecte][capacitateRucsac];
    return 0;
}