Cod sursa(job #1492776)

Utilizator TopiAlexTopala Alexandru TopiAlex Data 28 septembrie 2015 10:12:25
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#include <algorithm>
using namespace std;

#define N_MAX 5010
#define G_MAX 10010

struct Obiect{
    int g;
    int val;
}o[N_MAX];

int v[G_MAX];

int n;
int g;

int main()
{
    int i;
    int j;

    FILE *f = fopen("rucsac.in", "r");
    FILE *gf = fopen("rucsac.out", "w");

    fscanf(f, "%d%d", &n, &g);

    for (i = 1; i <= n; ++i)
        fscanf(f, "%d%d", &o[i].g, &o[i].val);

    for (i = 1; i <= n; ++i){
        for (j = g; j >= o[i].g; --j){
            v[j] = max(v[j], v[j - o[i].g] + o[i].val);
        }
    }

    fprintf(gf, "%d\n", v[g]);

    return 0;
}