Cod sursa(job #1499904)

Utilizator Julian.FMI Caluian Iulian Julian. Data 11 octombrie 2015 12:10:55
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#define gmax 10001
#define nmax 5001
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int dv[gmax],dn[gmax],g[nmax],pr[nmax];

int main()
{int n,gre,i,j,w;
    fin>>n>>gre;
    for(i=1;i<=n;i++)
        fin>>g[i]>>pr[i];


        for(j=1;j<=gre;j++)
        dv[j]=-1;


for(i=1;i<=n;i++)
   {for(w=1;w<=gre;w++)
       {dn[w]=dv[w];
       if(g[i]<=w && dv[w-g[i]]!=-1 && dn[w]<dv[w-g[i]]+pr[i])
        dn[w]=dv[w-g[i]]+pr[i];
       }

    for(w=1;w<=gre;w++)
        dv[w]=dn[w];
    }

int maxim=-1;
for(i=1;i<=gre;i++)
{
    if(maxim<dv[i] && dv[i]!=-1)
    maxim=dv[i];
}

fout<<maxim;
}