Cod sursa(job #1922916)

Utilizator TibixbAndrei Tiberiu Tibixb Data 10 martie 2017 19:36:07
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
#define NMAX 5005
using namespace std;
int n, g, p, gmax, g_max, pmax;
int d[NMAX];
bool u[NMAX];
ifstream _cin("rucsac.in");
ofstream _cout("rucsac.out");
int main()
{
    u[0] = 1;
    _cin >> n >> g_max;
    while(n--)
    {
        _cin >> g >> p;
        for(int i = gmax; i >= 0; i--)
        {
            if(u[i] == 1)
            {
                if(i + g <= g_max && d[i + g] < d[i] + p)
                {
                    d[i + g] = d[i] + p;
                    pmax = max(d[i + g], pmax);

                    gmax = max(i + g, gmax);

                    u[i + g] = 1;
                }
            }
        }
    }
    _cout << pmax;
    return 0;
}