Cod sursa(job #1035669)

Utilizator GabiMMarincu Gabriel GabiM Data 18 noiembrie 2013 18:53:49
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;

int n,gmax,g[1000],p[1000],sol[10000];

ifstream input("rucsac.in");
ofstream output("rucsac.out");

void read()
{
    int i;
    input >> n >> gmax;
    for (i=1;i<=n;i++)
        input >> g[i] >> p[i];
}

void rucsac()
{
    int i,j,PMax;
    for (i=1;i<=n;i++)
        sol[i] = -1;
    for (i=1;i<=n;i++)
        for (j=gmax;j>=0;j--)
            if (j+g[i]<=gmax&&sol[j]!=-1)
                if (sol[j+g[i]]<sol[j]+p[i])
                    sol[j+g[i]] = sol[j]+p[i];
    PMax = sol[1];
    for (i=1;i<=gmax;i++)
        if (sol[i]>PMax)
            PMax = sol[i];
    output << PMax;

}

int main()
{
    read();
    rucsac();
    return 0;
}