Cod sursa(job #1602525)

Utilizator ImGeluGelu Ungur ImGelu Data 16 februarie 2016 20:13:21
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

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

int nrObiecte;
int greutateMaxima;
int rezultat=0;

int greutateObiect[100001];
int pretObiect[100001];
int solutie[100001];

int main() {

    cin>>nrObiecte>>greutateMaxima;

    for(int i=1; i<=nrObiecte; i++) cin>>greutateObiect[i]>>pretObiect[i];

    for(int i=1; i<=nrObiecte; i++) {
        for(int j=greutateMaxima; j >= 0; j--)
            if(j >= greutateObiect[i])
                solutie[j] = max(solutie[j], solutie[j-greutateObiect[i]] + pretObiect[i]);
    }

    for(int i=greutateMaxima; i>=0; i--)
        if(solutie[i] > rezultat) rezultat = solutie[i];

    cout<<rezultat;


    return 0;
}