Cod sursa(job #1897124)

Utilizator eusebiu_gageaGagea Eusebiu-Andrei eusebiu_gagea Data 1 martie 2017 10:22:20
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");

#define NMAX 5001
#define GMAX 10001

int n, Gmax, G[NMAX], val[NMAX] ,vmax[2][GMAX];

int main()
{
    int i, g, a, b;
    in>>n>>Gmax;
    for(i = 1; i <= n; i++)
        in>>G[i]>>val[i];
    a = 0;
    for(i = 1; i <= n; i++) {
        b = 1 - a;
        for(g = 1; g <= Gmax; g++) {
            vmax[b][g] = vmax[a][g];
            if(G[i] <= g && vmax[b][g] < vmax[a][g - G[i]] + val[i])
                vmax[b][g] = vmax[a][g - G[i]] + val[i];
        }
        a = b;
    }

    out<<vmax[b][Gmax];
    return 0;
}