Cod sursa(job #3210988)

Utilizator UengineDavid Enachescu Uengine Data 7 martie 2024 21:15:07
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

struct obj{
    int weight;
    int profit;
};

const int N = 5e3 + 1;
const int G = 1e4 + 1;
obj v[N];
int dp[G];
//dp[weight] = max profit

int main() {
    int n, g_max;
    cin >> n >> g_max;
    for (int i = 1; i <= n; ++i)
        cin >> v[i].weight >> v[i].profit;
    for (int i = 1; i <= n; ++i)
        for (int j = g_max; j >= v[i].weight; --j)
            dp[j] = max(dp[j], dp[j - v[i].weight] + v[i].profit);
    int maxim = 0;
    for (int i = 1; i <= g_max; ++i)
        maxim = max(maxim, dp[i]);
    cout << maxim;
    return 0;
}