Pagini recente » Cod sursa (job #1795158) | Cod sursa (job #2097990) | Cod sursa (job #2150113) | Cod sursa (job #2310338) | Cod sursa (job #2570192)
#include <fstream>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
const int nmax=5005;
int main()
{
int n,g,w[nmax],v[nmax],dp[3][2*nmax];
fin >> n >> g;
for (int i=1;i<=n;i++)
{
fin >> w[i] >> v[i];
}
for (int i=0;i<=g;i++)
{
if (i>=w[1]) dp[1][i]=v[1];
else dp[1][i]=0;
}
for (int i=2;i<=n;i++)
{
for (int j=0;j<=g;j++)
{
if (j>=w[i]) dp[2][j]=max(dp[1][j],dp[1][j-w[i]]+v[i]);
else dp[2][j]=dp[1][j];
}
for (int j=0;j<=g;j++)
{
dp[1][j]=dp[2][j];
}
}
fout << dp[2][g];
}