Cod sursa(job #1979708)

Utilizator Mihnea_BranzeuMihnea Branzeu Mihnea_Branzeu Data 11 mai 2017 10:24:25
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

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