Cod sursa(job #2492385)

Utilizator LeCapataIustinian Serban LeCapata Data 14 noiembrie 2019 17:48:33
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>

using namespace std;

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

int n, G;

struct obiecte
{
    int w;
    int p;
};

obiecte rus[5005];
int mat[10005][5005];

int main()
{
    in>>n>>G;
    for(int i=1; i<=n; i++)
        in>>rus[i].w>>rus[i].p;

    for(int i=1; i<=n; i++)
        for(int j=1; j<=G; j++)
            if(rus[i].w>j)
                mat[i][j]=mat[i][j-1];
            else
                mat[i][j]=max(mat[i-1][j-rus[i].w]+rus[i].p, mat[i-1][j]);

    out<<mat[n][G];

    in.close();
    out.close();
    return 0;
}