Cod sursa(job #3147070)

Utilizator ada_454Ada Rotunjanu ada_454 Data 23 august 2023 23:25:08
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n, G, g[5001], p[5001], v[5001][10001];
int main()
{
    cin>>n>>G;
    for (int i=1; i<=n; i++)
        cin>>g[i]>>p[i];

    for (int i = 1; i <= n; i ++)
        for (int w = 1; w <= G; w ++){
            if(g[i] > w)//altfel w - g[i] < 0 si poate da rez dubios ( rezultatul max() ar fi fost oricum prima varianta)
                v[i][w] = v[i-1][w]; //obiectul i nu incape, deci copiez profitul de mai sus
            else
                v[i][w] = max(v[i-1][w], v[i-1][w-g[i]] + p[i]);
        }
   cout<<v[n][G];

}