Cod sursa(job #2892685)

Utilizator mihnea.tTudor Mihnea mihnea.t Data 23 aprilie 2022 10:39:08
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

struct obj_info {
    int weight;
    int profit;
};

int n, g;
vector<obj_info> v;

int main(void) {
    freopen("rucsac.in", "rt", stdin);
    freopen("rucsac.out", "wt", stdout);
    cin >> n >> g;
    
    v.push_back({0, 0});
    for (int i = 0; i < n; ++i) {
        int w, p;
        cin >> w >> p;
        v.push_back({w, p});
    }

    int dp[g + 1] = {0};
    for (int i = 1; i <= n; ++i) {
        for (int j = g; j >= 0; --j) {
            int curr_weight = v[i].weight;
            if (curr_weight <= j) {
                dp[j] = max(dp[j], dp[j - curr_weight] + v[i].profit);
            }
        }
    }

    cout << dp[g] << "\n";

    return 0;
}