Pagini recente » Cod sursa (job #2339714) | Cod sursa (job #1539071) | Cod sursa (job #1797924) | Cod sursa (job #2285271) | Cod sursa (job #1007967)
#include <fstream>
#define dimn 5005
#define dimg 10005
using namespace std;
int m[2][dimg],n,g;
int a[dimn][2]; //weight and profit
int main()
{
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
cin >>n >>g;
for (int i=1;i<=n;i++)
cin >>a[i][0]>>a[i][1];
for (int i=1;i<=n;i++)
{
for (int j=1;j<=g;j++)
{
if ((j-a[i][0])>=0) //we can add this object
{
int p = m[(i+1)%2][j-a[i][0]] + a[i][1]; //new profit
if (m[(i+1)%2][j] < p )
m[i%2][j] = p;
else
m[i%2][j] = m[(i+1)%2][j];
}
else
m[i%2][j] = m[(i+1)%2][j];
}
}
int max = 0;
for (int j=1;j<=g;j++)
{
if (m[n%2][j]>max)
max = m[n%2][j];
}
cout<<max<<endl;
return 0;
}