Cod sursa(job #1174584)

Utilizator andreea_zahariaAndreea Zaharia andreea_zaharia Data 23 aprilie 2014 14:59:22
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>

#define R 10000
#define N 5000

struct obiect {int greutate, profit;} v[N +1];

int d[R +1];

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

    int n, r;
    scanf ("%d%d", &n, &r);

    for (int i = 1; i <= n; i++)
        scanf ("%d%d", &v[i].greutate, &v[i].profit);

    for (int i = 1; i <= n; i++)
        for (int j = r - v[i].greutate; j >= 0; j--)
            if (d[j + v[i].greutate] < d[j] + v[i].profit)
                d[j + v[i].greutate] = d[j] + v[i].profit;

    int max = 0;
    for (int i = 1; i <= r; i++)
        if (d[i] > max)
            max = d[i];

    printf ("%d\n", max);

    return 0;
}