Cod sursa(job #1164854)

Utilizator lacraruraduRadu Matei Lacraru lacraruradu Data 2 aprilie 2014 12:37:48
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>

using namespace std;

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

int w[5001] , c[5001] , d[10001];

int main()
{
    int n , g , i , j;

    in>>n>>g;

    for(i = 1 ; i <= n ; i++)
        in>>w[i]>>c[i];

    for (j = 1; j <= g; j++)
        d[j] = -1;

    d[0] = 0;
    for(i = 1 ; i <= n ; i++)
        for(j = g; j >= w[i] ; j--)
        {
            if(d[j - w[i]] >= 0)
                d[j] = max(d[j] , d[j - w[i]] + c[i]);
        }

    out<<d[g]<<'\n';
    return 0;
}