Cod sursa(job #1786461)

Utilizator maria_sinteaMaria Sintea maria_sintea Data 22 octombrie 2016 23:12:26
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <cstdio>
#define NMAX 5000
#define NMAX1 10000

using namespace std;

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

int n, gmax, d[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()
{
    int maxim=0;
    for(int i=1;i<=n;i++)
        for(int j=gmax-ob[i].g;j>=0;j--)
        {
            if(d[j+ob[i].g]<d[j]+ob[i].v)
            {
                d[j+ob[i].g]=d[j]+ob[i].v;
                if(d[j+ob[i].g]>maxim)
                    maxim=d[j+ob[i].g];
            }
        }
    printf("%d ", maxim);
}

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

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