Cod sursa(job #2949018)

Utilizator alexandrubilaBila Alexandru-Mihai alexandrubila Data 29 noiembrie 2022 11:48:50
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
using namespace std;

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

const int NMAX = 5001;
const int GMAX = 10001;

int g[NMAX];
int val[NMAX];
int dp[NMAX][GMAX];

int main()
{
    int n, GMax;
    fin >> n >> GMax;
    for (int i = 1 ; i <= n ; i++)
        fin >> g[i] >> val[i];

    for (int i = 1 ; i <= n ; i++)
    {
        for (int gCrt = 1 ; gCrt <= GMax ; gCrt++)
            if (g[i] > gCrt)
                dp[i][gCrt] = dp[i - 1][gCrt];
            else
                dp[i][gCrt] = max(dp[i - 1][gCrt], dp[i - 1][gCrt - g[i]] + val[i]);
    }
    fout << dp[n][GMax];

    return 0;
}