Pagini recente » Cod sursa (job #1968139) | Cod sursa (job #1996266) | Cod sursa (job #801812) | Cod sursa (job #1681697) | Cod sursa (job #1374220)
#include <cstdio>
#include <cstring>
#include <algorithm>
#define Gmax 10005
#define INF 0x3f3f3f3f
using namespace std;
int DP[Gmax],N,G;
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
memset(DP,-INF,sizeof(DP));
DP[0] = 0;
scanf("%d%d",&N,&G);
int gr,cost,Glim = 0;
for(int i = 1; i <= N; ++i)
{
scanf("%d%d",&gr,&cost);
for(int j = Glim; j >= 0; --j)
if(DP[j + gr] < DP[j] + cost)
DP[j + gr ] = DP[j] + cost;
Glim = min(G,Glim + gr);
}
int best = 0;
for(int i = 0; i <= G; ++i)
if(best < DP[i])
best = DP[i];
printf("%d\n",best);
return 0;
}