Cod sursa(job #2696067)

Utilizator Albert_GAlbert G Albert_G Data 15 ianuarie 2021 10:39:54
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;

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

constexpr int N = 5e3;
int profit[N],w[N],p[N];

int main()
{
    int n,wmax,rez=-1;
    cin>>n>>wmax;
    for(int i=0;i<n;++i)
        cin>>w[i]>>p[i];
    for(int i=wmax;i>0;--i)
        profit[i]=-1;
    for(int i=0;i<n;++i)
    {
        for(int j=wmax-w[i];j>=0;--j)
        {
            if(profit[j]!=-1 && profit[j+w[i]]<profit[j]+p[i])
            {
                profit[j+w[i]]=profit[j]+p[i];
                rez = max(rez,profit[j+w[i]]);
            }
        }
    }
    cout<<rez;
    return 0;
}