Cod sursa(job #2775605)

Utilizator stefan.ghenescu2005@gmail.comStefan Ghenescu [email protected] Data 16 septembrie 2021 15:16:34
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int dp[10005],gr[5005],profit[5005];

int main()
{
    int n,G;
    in>>n>>G;
    for(int i=1;i<=n;i++)
    {
        in>>gr[i]>>profit[i];
    }
    for(int i=1;i<=n;i++)
    {
        for(int g=G;g>=1;g--)
        {
            if(gr[i]<=g)
            {
                if(g-gr[i]==0 || dp[g-gr[i]]!=0)
                {
                    dp[g]=profit[i]+dp[g-gr[i]];
                }
            }
        }
    }
    int rasp=0;
    for(int i=1;i<=G;i++)
    {
        rasp=max(rasp,dp[i]);
    }
    out<<rasp;
    return 0;
}