Cod sursa(job #1006669)

Utilizator R.A.RFMI Romila Remus Arthur R.A.R Data 7 octombrie 2013 15:58:52
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

using namespace std;

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

const int NMAX = 10002;

int valueFormed[NMAX];

int main()
{
    int N,G, weight, value, partialWeight, maxWeight = 0;

    in >> N >> G;

    valueFormed[0] = 1;

    for(int i = 0; i < N; i++){
        in >> weight >> value;

        for(partialWeight = maxWeight; partialWeight >= 0; partialWeight--){
            if(valueFormed[partialWeight]){
                valueFormed[partialWeight + weight] = max(valueFormed[partialWeight + weight], valueFormed[partialWeight] + value);
                maxWeight = max(maxWeight, partialWeight + weight);
                maxWeight = min(maxWeight, G);
            }
        }
    }

    out << valueFormed[maxWeight] -1 << '\n';
    return 0;
}