Cod sursa(job #2854577)

Utilizator StefaniaCriStefania Cristea StefaniaCri Data 21 februarie 2022 15:07:06
Problema Problema rucsacului Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <iostream>
#include <fstream>

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


int main()
{
    int nrObiecte, capacitateRucsac;
    f>>nrObiecte>>capacitateRucsac;

    int pret[nrObiecte], greutate[nrObiecte];

    for(int i=1;i<=nrObiecte;i++){
        f>> greutate[i]>>pret[i];

    }
    int capacitati[nrObiecte+1][capacitateRucsac+1];


    for(int obiect = 0; obiect <= nrObiecte; obiect++ )
         capacitati[obiect][0] = 0;
    for(int weight = 0; weight <= capacitateRucsac; weight++)
        capacitati[0][weight] = 0;

    for(int obiect = 1; obiect <= nrObiecte; obiect++ )
        for(int weight = 0; weight <= capacitateRucsac; weight++)
            if(greutate[obiect] <= weight)
                capacitati[obiect][weight] = max(capacitati[obiect-1][weight],
                                                 capacitati[obiect-1][weight - greutate[obiect]] + pret[obiect]);
            else
                 capacitati[obiect][weight] = capacitati[obiect-1][weight];

     g<<capacitati[nrObiecte][capacitateRucsac];

    return 0;
}