Pagini recente » Cod sursa (job #2326418) | Cod sursa (job #953007) | Cod sursa (job #445060) | Cod sursa (job #1211976) | Cod sursa (job #1852768)
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, g;
int w[5001], p[5001];
int d[5001][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[n][g];
else
fout << d[n][g];
return 0;
}