Cod sursa(job #3161240)

Utilizator daria_staminStamin Daria Alexandra daria_stamin Data 26 octombrie 2023 10:10:35
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int MAX_N=5005;
const int MAX_G=10005;
struct t_object{
    int greutate,profit;
};
int dp[MAX_N][MAX_G];
int main(){
    int nr_elem, gmax;
    t_object objs[MAX_N];
    fin>>nr_elem>>gmax;
    for (int i=1;i<=nr_elem;i++){
        int greutate;
        int profit;
        fin>>greutate>>profit;
        t_object obiect={greutate, profit};
        objs[i]=obiect;
    }
      for(int idx=1;idx<=nr_elem;idx++){
        for(int g=1;g<=gmax;g++){
           t_object obj=objs[idx];
           if(obj.greutate>g){
            dp[idx][g]=dp[idx-1][g];
           }
           else{
            int profit1=dp[idx-1][g];
            int profit2=obj.profit+dp[idx-1][g-obj.greutate];
            dp[idx][g]=max(profit1,profit2);
           }
        }
      }

        fout<<dp[nr_elem][gmax];
    return 0;
}