Cod sursa(job #2151368)

Utilizator ionicaion ionica Data 4 martie 2018 13:33:40
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>

using namespace std;
int  a[5001], v[5001], cmax[10001], n, b[10001],gmax;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main()
{
    int i,j,g,k,vm;
    fin>>n>>gmax;
    for(i=1; i<=n; i++)
                fin>>a[i]>>v[i];

    for(j=1;j<=gmax;j++)
        {
            cmax[j]=-1;
           /// b[j]=n+1;
        }
    vm=0;
    for ( i=1;i<=n;i++)
    {
        for (j=vm;j>=0;j--)
            if(j+a[i]<=gmax && cmax[j+a[i]]<cmax[j]+v[i])
            {
              cmax[j+a[i]]=cmax[j]+v[i];
              if(j+a[i]>vm)
                    vm=j+a[i];
            }
        k=1;
    }
    vm=0;
    for(g=1;g<=gmax;g++)
        if(cmax[g]>vm)
        {
            vm=cmax[g];
           /// gm=g;
        }
        fout<<vm;
    /*
    fout<<"vm="<<vm<<" gm="<<gm<<'\n';
    j=gm;s=0;
    do{
        fout<<"sr="<<j<<'\n';
        i=b[j];
        fout<<i<<"-->"<<a[i]<<' '<<v[i]<<' '<<"cm="<<cmax[j]<<'\n'<<'\n';
        s=s+v[i];
        j=j-a[i];
    }while(j>0);
    fout<<s<<'\n';
    */


    return 0;
}