Cod sursa(job #1569068)

Utilizator starlingIon Popa starling Data 14 ianuarie 2016 22:22:11
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <bits/stdc++.h>

using namespace std;
int w[6000],p[6000],dp[6000][10009];
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int main()
{
    int g,n;
    in>>n>>g;
    for(int i=1;i<=n;i++)
        in>>w[i]>>p[i];
    dp[1][w[1]]=p[1];
     for(int i=2;i<=n;i++)
        for(int s=w[i];s<=g;s++)
         {   dp[i][s]=dp[i-1][s];
             if(s==w[i])dp[i][s]=max(dp[i][s],p[i]);
             if(dp[i-1][s-w[i]])
             dp[i][s]=max(dp[i][s],dp[i-1][s-w[i]]+p[i]);
         }

    out<<dp[n][g];

    return 0;
}