Pagini recente » Cod sursa (job #2342795) | Cod sursa (job #877969) | Cod sursa (job #98624) | Cod sursa (job #1499930) | Cod sursa (job #806622)
Cod sursa(job #806622)
#include<stdio.h>
#include<string.h>
int d[50005];
struct Obj {int g,p;};
Obj a[5005];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,g,i,j;
scanf("%d%d",&n,&g);
for(i=1;i<=n;i++)
scanf("%d%d",&a[i].g,&a[i].p);
for(i=1;i<=g;i++)
d[i]=-1;
for(i=1;i<=n;i++)
for(j=g;j>=0;j--)
if(d[j]!=-1 && a[i].g+j<=g && d[a[i].g+j]<d[j]+a[i].p)
d[a[i].g+j]=d[j]+a[i].p;
int max=0;
for(i=0;i<=g;i++)
if(d[i]>max)
max=d[i];
printf("%d\n",max);
return 0;
}