Cod sursa(job #3291346)

Utilizator Lex._.Lexi Guiman Lex._. Data 4 aprilie 2025 12:42:09
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
#define inf 2000000000
using namespace std;

int dp[10001]; //pentru fiecare indice i, salvam profitul maxim pentru un rucsac cu greutatea i

int main()
{
    ifstream cin("rucsac.in");
    ofstream cout("rucsac.out");
    int n, g_max;
    cin >> n >> g_max;
    for(int i=1; i<=g_max; i++)
        dp[i]=-inf;
    for(int i=0; i<n; i++)
    {
        int greutate, profit;
        cin >> greutate >> profit;

        for(int j=g_max; j>=greutate; j--)
        {
            dp[j]=max(dp[j], dp[j-greutate]+profit);
        }
    }
    int p_max=0; //profitul maxim
    for(int i=0; i<=g_max; i++)
    {
        p_max=max(p_max, dp[i]); //calculam maximul dintre profitul pentru fiecare rucsac
    }
    cout << p_max;

    return 0;
}