Cod sursa(job #3238466)

Utilizator tudorvoieVoie Tudor tudorvoie Data 25 iulie 2024 17:42:59
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, g, pret[5001], greutate[5001], D[5001][5001];
int main()
{
    fin >> n >> g;
    for(int i = 1; i <= n; i++){
        fin >> greutate[i] >> pret[i];
    }

    /*
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= g; j++){
            if(D[j] < D[j - greutate[i]] + pret[i]){
                D[j] = D[j - greutate[i]] + pret[i];
            } else {
                D[j] = D[j-1];
            }
        }
    }
    */

    for(int i = 1; i <= n; i++){
        for(int gr = 1; gr <= g; gr++){
            D[i][gr] = D[i-1][gr];
            if(greutate[i] <= gr){
                D[i][gr] = max(D[i-1][gr - greutate[i]] + pret[i], D[i][gr]);
            }
        }
    }

    //cout << D[n][g];
    fout << D[n][g];
    return 0;
}