Pagini recente » Cod sursa (job #2269935) | Cod sursa (job #1388369) | Cod sursa (job #2768093) | Cod sursa (job #1248334) | Cod sursa (job #1963442)
#include <fstream>
#define MAXG 10001
using namespace std;
ifstream fi("rucsac.in");
ofstream fo("rucsac.out");
int W,P,n,g,D[2][MAXG],i,j;
int main()
{
fi>>n>>g;
///D[i][j]=profitul maxim care se poate atinge cu obiecte dintre primele i, cu greuta-
///tea cel mult j
for (i=1; i<=n; i++)
{
///construim linia i din D pe D[1][...]
fi>>W>>P;
for (j=0; j<=g; j++)
{
D[1][j]=D[0][j];
if (W<=j)
D[1][j]=max(D[0][j],D[0][j-W]+P);
}
for (j=1; j<=g; j++)
D[0][j]=D[1][j];
}
fo<<D[0][g];
fi.close();
fo.close();
return 0;
}