Pagini recente » Cod sursa (job #148164) | Cod sursa (job #148198) | Cod sursa (job #2381207) | Cod sursa (job #846358) | Cod sursa (job #1425522)
#include <cstdio>
#include <algorithm>
using namespace std;
int d[10005]= {-1};
int main()
{
d[0]=0;
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int maxdr=0,n,g,w,p,i,j;
scanf("%d%d",&n,&g);
for(i=1; i<=n; ++i)
{
scanf("%d%d",&w,&p);
for(j=maxdr; j>=0; --j)
if(j+w<=g)
{
if(d[j]!=-1)
d[j+w]=max(d[j+w],d[j]+p);
if(j+w>maxdr)
maxdr=j+w;
}
}
int maxp=0;
for(j=1; j<=g; ++j)
if(d[j]>maxp)
maxp=d[j];
printf("%d\n",maxp);
return 0;
}