Nu aveti permisiuni pentru a descarca fisierul grader_test14.in
Cod sursa(job #2570192)
Utilizator | Data | 4 martie 2020 15:30:43 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | r3capitusulare | Marime | 0.65 kb |
#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];
}