Cod sursa(job #2216193)

Utilizator razviii237Uzum Razvan razviii237 Data 25 iunie 2018 20:17:54
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>

#define fs fscanf
#define fp fprintf

using namespace std;

FILE *f, *g;

struct object
{
    int w, p; // weight, profit
}v[5005];

int n, gr, i;
int d[2][10005], cw;

int main()
{
    f = fopen("rucsac.in", "r");
    g = fopen("rucsac.out", "w");

    fs(f, "%d%d", &n, &gr);

    for(i = 1; i <= n; i ++)
    {
        fs(f, "%d%d", &v[i].w, &v[i].p);
    }

    for(i = 1; i <= n; i ++)
    {
        for(cw = 1; cw <= gr; cw ++)
        {
            d[0][cw] = d[1][cw];
            if(v[i].w <= cw)
                d[1][cw] = max(d[0][cw], d[0][cw-v[i].w] + v[i].p);
            //cout << d[1][cw] << ' ';
        }
        //cout << '\n';
    }

    fp(g, "%d\n", d[1][gr]);

    fclose(f);
    fclose(g);
    return 0;
}