Cod sursa(job #1860746)

Utilizator sadpolkgigi becali smecher sadpolk Data 28 ianuarie 2017 12:47:10
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int d[10005];
int main()
{
    int last=0,i,j,g,p,n,maxi=0,GMAX;//j greutate d[j] profit
    in>>n>>GMAX;
    for(i=1;i<=GMAX;++i)
        d[i]=-1;
    d[0]=0;
    for(i=1;i<=n;++i)
    {
        in>>g>>p;
        for(j=last;j>=0;--j)
        {
            if(j+g>GMAX)continue;
            if(d[j]!=-1)
            {
                if(d[j+g]<d[j]+p)
                {
                    d[j+g]=d[j]+p;
                    if(j+g>last)
                        last=j+g;
                }
            }
        }
    }
    for(i=1;i<=GMAX;++i)
        if(d[i]>=maxi)
            maxi=d[i];
    out<<maxi;
    return 0;
}