Cod sursa(job #2684493)

Utilizator cezar.balutaCezar Baluta cezar.baluta Data 13 decembrie 2020 20:32:33
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;

struct ghiozdan{
int greutate;
int profit;
};

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

int main()
{
    int dp[10005]={0};
    int nr_ghiozdane,greutate_maxima;
    ghiozdan ghiozdane[5005];
    in>>nr_ghiozdane>>greutate_maxima;
    for(int i=0;i<nr_ghiozdane;i++)
    {
        in>>ghiozdane[i].greutate>>ghiozdane[i].profit;
    }
    for(int i=0;i<nr_ghiozdane;i++)
    {
        for(int j=10000-ghiozdane[i].greutate;j>=0;j--)
        {
            if(dp[j+ghiozdane[i].greutate]<dp[j]+ghiozdane[i].profit)
                dp[j+ghiozdane[i].greutate]=dp[j]+ghiozdane[i].profit;
        }
    }
    int profit_maxim=0;
    for(int i=0;i<=greutate_maxima;i++)
    {
        profit_maxim=max(profit_maxim,dp[i]);
    }
    out<<profit_maxim;
    return 0;
}