Cod sursa(job #2949853)

Utilizator stefanrotaruRotaru Stefan-Florin stefanrotaru Data 1 decembrie 2022 22:11:01
Problema Problema rucsacului Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

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

const int gMax = 5001;
const int nMax = 1e5 + 1;
int W[nMax];
int P[nMax];
int C[gMax];

int main()
{

    int n, GMAX;

    f >> n >> GMAX;


    for (int i = 1; i <= n; ++i) {
        f >> W[i] >> P[i];
    }
    /// C[x] inseamna ca am o multime de obiecte a caror greutate e x si genereaza profitul C[x]

    C[0] = 0;
    int sol = 0;

    for (int i = 1; i <= n; ++i) {
        for (int j = GMAX - W[i]; j >= 0; --j) {
            if(C[j + W[i]] < C[j] + P[i]) {
                C[j + W[i]] = C[j] + P[i];
                sol = max(sol, C[j + W[i]]);
            }
        }
    }

    g << sol;

    return 0;
}