Pagini recente » Cod sursa (job #741383) | Cod sursa (job #2184650) | Cod sursa (job #1428515) | Cod sursa (job #2852591) | Cod sursa (job #1852771)
#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;
}
poz1=i;
poz2=i-1;
for(int cw=1; cw<=g; cw++)
{
d[poz1][cw]=d[poz2][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;
}