Cod sursa(job #2310992)

Utilizator ScarymovieMocanu Alexandru Scarymovie Data 2 ianuarie 2019 14:29:39
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include<vector>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct obiect
{
    int w,p;
};
int n,G;
vector<obiect> ob;
vector<vector<int> > dp;
int main()
{
    f>>n>>G;
    ob.resize(n);
    for(int i=0;i<n;++i)
        f>>ob[i].w>>ob[i].p;
    dp.resize(n);
    dp[0].resize(G+1);
    for(int i=0;i<=G;++i)
        if(i<ob[0].w)
            dp[0][i]=0;
        else dp[0][i]=ob[0].p;
    for(int j=1;j<n;++j)
    {
        dp[j].resize(G+1);
      for(int i=0;i<=G;++i)
            if(i<ob[j].w) dp[j][i]=dp[j-1][i];
            else dp[j][i]=max(dp[j-1][i],dp[j-1][i-ob[j].w]+ob[j].p);
    }
    g<<dp[n-1][G]<<'\n';
    return 0;
}