Pagini recente » Cod sursa (job #2969387) | Cod sursa (job #3032379) | Cod sursa (job #1352854) | Cod sursa (job #1497492) | Cod sursa (job #1007965)
#include <fstream>
#define dimn 5005
#define dimg 10005
using namespace std;
int m[dimn][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][j-a[i][0]] + a[i][1]; //new profit
if (m[i-1][j] < p )
m[i][j] = p;
else
m[i][j] = m[i-1][j];
}
else
m[i][j] = m[i-1][j];
}
}
int max = 0;
for (int j=1;j<=g;j++)
{
if (m[n][j]>max)
max = m[n][j];
}
cout<<max<<endl;
return 0;
}