Pagini recente » Cod sursa (job #903995) | Cod sursa (job #2819653) | Cod sursa (job #1498415) | Cod sursa (job #2638396) | Cod sursa (job #1851105)
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, g;
int w[5001], p[5001];
int d[2][10001];
int main()
{
fin >> n >> g;
for(int i=1; i<=n; i++)
fin >> w[i] >> p[i];
for(int i=1; i<=n; i++)
{
int poz1;
int poz2;
if(i%2==0)
{
poz1=0;
poz2=1;
}
else
{
poz1=1;
poz2=0;
}
for(int cw=0; cw<=g; cw++)
if(cw>=w[i])
d[poz1][cw]=max(d[poz2][cw], (d[poz2][cw-w[i]]+p[i]));
}
if(n%2==0)
fout << d[0][g];
else
fout << d[1][g];
return 0;
}