Cod sursa(job #2572498)

Utilizator ioana_marinescuMarinescu Ioana ioana_marinescu Data 5 martie 2020 13:06:11
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.51 kb
#include <bits/stdc++.h>

using namespace std;

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

const int MAX_N = 5000;

int n, g;
int w[MAX_N + 5], p[MAX_N + 5];
int dp[MAX_N + 5][MAX_N + 5];

int main() {
    fin >> n >> g;
    for (int i = 1; i <= n; i++)
        fin >> w[i] >> p[i];

    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= g; j++)
            if(j - w[i] >= 0)
                dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + p[i]);


    fout << dp[n][g] << '\n';

    return 0;
}