Cod sursa(job #2630591)

Utilizator flashraneSzasz Csongor flashrane Data 26 iunie 2020 12:56:20
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;

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

const int MAX = 3002;
int n, g, p[MAX], w[MAX], dp[MAX][MAX];

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

    for (int i = 1; i <= n; i++)
    {
        for (int j = 0; j <= g; j++)
        {
            if (w[i-1] <= j)
                dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i-1]] + p[i-1]);
            else
                dp[i][j] = dp[i-1][j];
        }
    }
    fout << dp[n][g];
    /*
    for (int i = 0; i <= n; i++)
    {
        for (int j = 0; j <= g; j++)
            fout << dp[i][j] << " ";
        fout << "\n";
    }
    */
}