Cod sursa(job #1898375)

Utilizator denniscrevusDennis Curti denniscrevus Data 1 martie 2017 23:12:43
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#define GMAX 10005
#define NMAX 5005

using namespace std;

int d[2][GMAX], n, G, i, j, lc, ac, aux;

ifstream f("rucsac.in");
ofstream g("rucsac.out");

struct obiect
{
    int g;
    int p;
}v[NMAX];

int main()
{
    f>>n>>G;

    for(i=1;i<=n;i++)
        f>>v[i].g>>v[i].p;


    ac = 0;
    lc = 1;

    for(i=1;i<=n;i++)
    {
        aux = ac;
        ac = lc;
        lc = aux;

        for(j=0;j<GMAX;j++)
        {
            if(v[i].g <= j)
                d[ac][j] = max(d[lc][j-v[i].g]+v[i].p, d[lc][j]);
            else
                d[ac][j] = d[lc][j];
        }
    }

    g<<d[ac][G];
}