Cod sursa(job #2836478)

Utilizator octavian2411Cretu Octavian octavian2411 Data 20 ianuarie 2022 15:05:51
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;

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

const int N=5000;

int profit[N+1],g[N+1],p[N+1];

int main()
{
    int n, k;
    in>>n>>k;
    for (int i=0;i<n;i++)
    {
        in>>g[i]>>p[i];
    }
    for (int j=1;j<=k;j++)
    {
        profit[j]=-1;
    }
    for (int i=0;i<n;i++)
    {
        for (int j=k-g[i];j>=0;j--)
        {
            if (profit[j]!=-1)
            {
                profit[j+g[i]]=max(profit[j]+p[i], profit[j+g[i]]);
            }
        }

    }
    int maxim=0;
    for (int i=1;i<=k;i++)
    {
        if (profit[i]>maxim)
            maxim=profit[i];
    }
    out<<maxim;
    return 0;
}