Cod sursa(job #2715466)

Utilizator NanuGrancea Alexandru Nanu Data 3 martie 2021 18:37:40
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin("rucsac.in");
ofstream cout("rucsac.out");

#define NMAX 5001
#define G 10001

int g[NMAX], v[NMAX], s[G];
int n, gmax, maxim, i;

int main() {
    cin >> n >> gmax;
    for(i = 1; i <= n; i++)
        cin >> g[i] >> v[i];    //greutatea si valoarea fiecarui obiect
    
    for(i = 1; i <= n; i++) //g[i] reprezinta indicele 
        for(int j = gmax - g[i]; j >= 0; j--)   
            if(s[j + g[i]] < s[j] + v[i]) { //daca avem o solutie mai buna
                s[j + g[i]] = s[j] + v[i];  //v[i] reprezinta valoarea
                if(s[j + g[i]] > maxim)
                    maxim = s[j + g[i]];
            }
    cout << maxim;

    return 0;
}