Pagini recente » Cod sursa (job #1830599) | Cod sursa (job #2338847) | Cod sursa (job #368241) | Cod sursa (job #1892817) | Cod sursa (job #2114709)
#include <fstream>
#define MAXG 10005
using namespace std;
ifstream fi("ruksak.in");
ofstream fo("ruksak.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;
}