Cod sursa(job #3354827)

Utilizator alexia._.fFlorete Alexia alexia._.f Data 20 mai 2026 21:32:01
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
// https://infoarena.ro/problema/rucsac

#include <bits/stdc++.h>

using namespace std;

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

// dp[w] = profit maxim pentru capacitatea w după ce am procesat obiectele de până acum
// dp[i][w] = profit maxim folosind primele i obiecte și capacitate w

int main()
{
    int n, g;
    in >> n >> g;
    
    vector<int> dp(g + 1, 0);
    for(int i = 1; i <= n; i++)
    {
        int w, pret;
        in >> w >> pret;
        for(int cap = g; cap >= w; cap--)
        {
            dp[cap] = max(dp[cap], dp[cap - w] + pret);
        }
    }

    out << dp[g] << "\n";
    return 0;
}