Cod sursa(job #1006680)

Utilizator R.A.RFMI Romila Remus Arthur R.A.R Data 7 octombrie 2013 16:07:59
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 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(partialWeight + weight <= G && valueFormed[partialWeight]){
                valueFormed[partialWeight + weight] = max(valueFormed[partialWeight + weight], valueFormed[partialWeight] + value);
            }
        }

        maxWeight += weight;
        maxWeight = min(maxWeight, G);
    }

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