Cod sursa(job #1979703)

Utilizator AlexToveAlexandru Toader AlexTove Data 11 mai 2017 10:18:51
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int d[1000005],i,n,j,last,g,p,GMAX,maxi=-1;
int main()
{
    fin>>n>>GMAX;
    for(i=1;i<=GMAX;i++)
        d[i]=-1;
    d[0]=0;
    last=0;
    for(i=1;i<=n;i++)
    {
        fin>>g>>p;
        for(j=last;j>=0;j--)
            if(d[j]!=-1 && j+g<=GMAX)
                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];
    }
    fout<<maxi;
    return 0;
}