Cod sursa(job #2939863)

Utilizator TudosieRazvanTudosie Marius-Razvan TudosieRazvan Data 14 noiembrie 2022 11:58:56
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <cmath>
#include <algorithm>
#define NMAX 10003
using namespace std;

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

int n,g;
long long  maxim=-1;
long long  rucsac[NMAX];

void adaugProfit(long long w,long long pret)
{
    for(int i=g; i>=w; i--)
    {
        if(rucsac[i-w]!=-1)
        {
            rucsac[i]=max(rucsac[i],rucsac[i-w]+pret);
        }
        maxim=max(rucsac[i],maxim);
    }
    rucsac[w]=max(rucsac[w],pret);
    maxim=max(rucsac[w],maxim);
}

int main()
{
    fin>>n>>g;
    for(int i=0; i<=g; i++)
    {
        rucsac[i]=-1;
    }
    for(int i=1; i<=n; i++)
    {
        int greu,profit;
        fin>>greu>>profit;
        adaugProfit(greu,profit);
    }
    fout<<maxim;

    return 0;
}