Cod sursa(job #2203814)

Utilizator TudorCaloianCaloian Tudor-Ioan TudorCaloian Data 13 mai 2018 11:36:05
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, G, dp[5001], profit = -1000 ;

struct rucsac{
    int g, p;
};
rucsac v[5001];

int main()
{
    fin >> n >> G;
    for(int i = 1; i <= n; i++)
        fin >> v[i].g >> v[i].p;
    for(int i = 1; i <= n; i++)
    {
        for(int j = G; j >= 0; j--)
        {
            if(dp[j] > 0 && j + v[i].g <= G)
             {
                 dp[j+v[i].g] = max(dp[j] + v[i].p, dp[j+v[i].g]);

             }




        }
        dp[v[i].g] = max(dp[v[i].g], v[i].p);

    }
    for(int i= 1; i <= G; i++)
    {
        profit = max(profit, dp[i]);
    }
    fout << profit;
    return 0;
}