Cod sursa(job #2175073)

Utilizator IonelChisIonel Chis IonelChis Data 16 martie 2018 15:06:02
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

#define Nmax 5001
#define Gmax 10001

using namespace std;

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

int n, g, i, j, G[Nmax], P[Nmax], D[Nmax], rasp;

int main()
{
    fin >> n >> g;
    for (i = 1; i <= n; i ++)
        fin >> G[i] >> P[i];

    for (i = 1; i <= n; i ++)
    {
        for (j = g - G[i]; j >= 0; j --)
        {
            if (D[j + G[i]] < D[j] + P[i])
                D[j + G[i]] = D[j] + P[i];
        }
    }

    for (i = 1; i <= n + g; i ++)
    {
        if (D[i] > rasp)
            rasp = D[i];
    }
    fout << rasp;

    fin.close();
    fout.close();
    return 0;
}