Cod sursa(job #2949019)

Utilizator alexandrubilaBila Alexandru-Mihai alexandrubila Data 29 noiembrie 2022 11:52:39
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 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[2][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[1][gCrt] = dp[0][gCrt];
            else
                dp[1][gCrt] = max(dp[0][gCrt], dp[0][gCrt - g[i]] + val[i]);

        ///copiere
        for (int j = 0 ; j <= GMax; j++)
            dp[0][j] = dp[1][j];
    }
    fout << dp[1][GMax];

    return 0;
}