Cod sursa(job #1786453)

Utilizator maria_sinteaMaria Sintea maria_sintea Data 22 octombrie 2016 22:52:47
Problema Problema rucsacului Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <cstdio>
#include <algorithm>
#define NMAX 5000
#define NMAX1 10000

using namespace std;

struct{
    int g, v;
}ob[NMAX];

int n, gmax, d[NMAX][NMAX1];

void citire()
{
    scanf("%d %d\n", &n, &gmax);
    for(int i=1;i<=n;i++)
        scanf("%d %d\n", &ob[i].g, &ob[i].v);
}

void generare()
{
    for(int i=1;i<=n;i++)
        for(int j=0;j<=gmax;j++)
        {
            d[i][j]=d[i-1][j];
            if(ob[i].g<=j)
                d[i][j]=max(d[i][j],d[i-1][j-ob[i].g]+ob[i].v);
        }
    printf("%d ", d[n][gmax]);
}

int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);

    citire();
    generare();
    return 0;
}