Cod sursa(job #2717313)

Utilizator witekIani Ispas witek Data 7 martie 2021 01:47:08
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

ifstream f("rucsac.in");
ofstream g("rucsac.out");

struct obiect {
    int g, val;
};

int n, gmax;
vector <obiect> v;
int a[5005][5005];

void rucsac() {
    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= gmax; ++j)
            if(v[i].g > j)
                a[i][j] = a[i - 1][j];
            else a[i][j] = max(a[i - 1][j], a[i - 1][j - v[i].g] + v[i].val);
}

int main()
{
    f >> n >> gmax;
    v = vector <obiect> (n + 1);
    for(int i = 1; i <= n; ++i)
        f >> v[i].g >> v[i].val;
    rucsac();
    g << a[n][gmax];
}