Cod sursa(job #2854539)

Utilizator StefaniaCriStefania Cristea StefaniaCri Data 21 februarie 2022 14:51:23
Problema Problema rucsacului Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.36 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct sortate{
    int id;
    int pret;
    int greutate;
    int raport;
};
int main()
{
    int nrObiecte, capacitateRucsac;
    f>>nrObiecte>>capacitateRucsac;
    int pret[nrObiecte], greutate[capacitateRucsac];
    for(int i=1;i<=nrObiecte;i++){
        f>> greutate[i]>>pret[i];

    }
    int capacitati[nrObiecte][capacitateRucsac];

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

    for(int obiect = 1; obiect <= nrObiecte;obiect++ )
        for(int weight = 1; 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];


/*
     for(int obiect = 0; obiect<= nrObiecte;obiect++ ){
        for(int weight = 0; weight <= capacitateRucsac; weight++)
            cout<<capacitati[obiect][weight]<<" ";
        cout<<endl;
     }

     */
     g<<capacitati[nrObiecte][capacitateRucsac];
    return 0;
}