Cod sursa(job #3181728)

Utilizator 21CalaDarius Calaianu 21Cala Data 7 decembrie 2023 19:56:36
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <cmath>

#define NMAX 5005
#define GMAX 10005

using namespace std;
const string nume_fisier = "rucsac";
ifstream fin(nume_fisier + ".in");
ofstream fout(nume_fisier + ".out");

int n, g, w[NMAX], p[NMAX], d[GMAX], sol;

int main()
{
    fin >> n >> g;
    for (int i = 1; i <= n; ++i)
        fin >> w[i] >> p[i];
    for (int i = 1; i <= n; ++i)
    {
        for (int j = g - w[i]; j >= 0; --j)
        {
            if (d[j + w[i]] < d[j] + p[i])
            {
                d[j + w[i]] = d[j] + p[i];
                if (d[j + w[i]] > sol)
                    sol = d[j + w[i]];
            }
        }
    }
    fout << sol;
}