Cod sursa(job #2615691)

Utilizator Vlad_1Alexan Vlad Vlad_1 Data 15 mai 2020 11:10:12
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <algorithm>

using namespace std;

const int GMAX=10000;
int d[GMAX+5];

int main()
{
    int n,i,j,last,g,p,G,pmax=0;
    cin>>n>>G;
    d[0]=0, last=0;
    for(i=1; i<=G; i++)
        d[i]=-1;
    for(i=1; i<=n; i++)
    {
        cin>>g>>p;
        for(j=last; j>=0; j--)
        {
            if(j+g>G)
                continue;
            if(d[j]!=-1)
            {
                if(d[j]+p>d[j+g])
                    d[j+g]=d[j]+p;
                last=max(last,j+g);
            }
        }
    }
    for(j=G; j>=0; j--)
            if(d[j]>pmax)
                pmax=d[j];
        cout<<pmax;
    system("pause");
    return 0;
}